usePost is in options parameter, not in request: (see http://help.arcgis.com/en/webapi/javascript/arcgis/help/jsapi/namespace_esri.htm)
esri.request({
url: soeURL,
content: content,
callbackParamName: "callback",
load: function(response) {
listFeatureDetails(response);
},
error: function(error) {
console.log(error);
}
}, {usePost: true});
From soe you can serialize polygon (arcobjects) and send to client deserialized (json):
JsonObject jsonPolygon;
if (!operationInput.TryGetJsonObject("myNameParameter", out jsonPolygon))
throw new ArgumentNullException("myNameParameter");
//deserialize
IPolygon pg= Conversion.ToGeometry(jsonPoint, esriGeometryType.esriGeometryPolygon) as IPolygon;
....
//serialize polygon (for example)
JsonObject jsonObjectGeometry = Conversion.ToJsonObject(myPolygon);
JsonObject resultJsonObject = new JsonObject();
resultJsonObject.AddJsonObject("geometry", jsonObjectGeometry);
...
// Get byte array of json and return results
byte[] result = Encoding.UTF8.GetBytes(resultJsonObject.ToJson());
return result;
from client send polygon in esri.request
var polygon = dojo.toJson(mygeometry.toJson())
from client deserialize polygon
var polygon = new esri.geometry.Polygon(polygonJson);