我正在试图通过json c #web服务来配合我的android应用程序 我必须从Web服务检索一个json对象,但我没有将json对象发送到Web服务。
这是我的网络服务代码
[WebMethod]
public void recibePosicion(string json_cad)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
Posicion nueva_posicion = jss.Deserialize<Posicion>(json_cad);
PosicionDAO posicion_dao = new PosicionDAO();
posicion_dao.InsertaPosicion(nueva_posicion);
}
这是我的andorid代码
HttpClient client = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); //Timeout Limit
HttpResponse response;
JSONObject json = new JSONObject();
try
{
HttpPost post = new HttpPost("http://10.0.2.2:1218/JSON.asmx/recibePosicion");
post.setHeader("Accept", "application/json");
post.setHeader("Content-type", "application/json");
json.put("idPosicion", "-1");
json.put("x", "100");
json.put("y", "200");
StringEntity se = new StringEntity( json.toString(), HTTP.UTF_8);
se.setContentType("application/json");
post.setEntity(se);
HttpResponse getResponse = client.execute(post);
final int statusCode = getResponse.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK) {
Log.w(getClass().getSimpleName(), "Error " + statusCode + " for URL " + url);
return null;
}
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("Cannot Estabilish Connection");
}
我获得状态码500。 相反,如果我将Web方法更改为
public void recibePosicion()
我打电话给服务,但我不知道如何获取json数据。
请我提出任何解决该问题的提示。
感谢。
答案 0 :(得分:-1)
您的代码中几乎没有错误:
static
你想在webmethod中获取json对象,但是你的webmethod是
参数的类型为string
,请将其更改为object
:
[WebMethod]
public static void recibePosicion(object json_cad){
JavaScriptSerializer jss = new JavaScriptSerializer();
Posicion nueva_posicion = jss.Deserialize<Posicion>(json_cad);
PosicionDAO posicion_dao = new PosicionDAO();
posicion_dao.InsertaPosicion(nueva_posicion);
}