Android:将JSON发送到C#webservice

时间:2014-05-08 19:32:33

标签: c# java android json web-services

我目前正在尝试将一个JSON字符串从Android应用程序发送到我制作的C#webservice。 Web服务代码很简单: public void PostLocationsAndroid(string data) { //DO STUFF }

但是我的所有请求最终都以data为空。以下是我尝试在Android应用中使用网络服务的方式:

public void postData(String myValue) { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://myurl.com/myserver/PostLocationsAndroid"); try { StringEntity se = new StringEntity(myValue); se.setContentType("application/json; charset=UTF-8"); httppost.setEntity(se); httppost.setHeader("Accept", "application/json"); HttpParams params = new BasicHttpParams(); params.setParameter("data", valueIWantToSend); httppost.setParams(params);
HttpResponse response = httpclient.execute(httppost); }

我尝试了几种不同的方式,这是我最近的失败。

2 个答案:

答案 0 :(得分:0)

你有没有尝试过这个问题的答案? https://stackoverflow.com/a/2938787/389141

它似乎与您现在遇到的问题非常相似。

答案 1 :(得分:0)

您确定要传递JSON字符串吗?

尝试下面的代码(我在我的代码中使用过类似的代码)。

 JSONObject jsonObject = new JSONObject();
 jsonObject.put("data", valueIWantToSend);

 HttpResponse httpResponse = handleJsonPost(url, jsonObject);

public HttpResponse handleJsonPost(String url, JSONObject jsonObject)
        throws UnsupportedEncodingException, IOException, ClientProtocolException {
    HttpPost httpPost = new HttpPost(url);
    httpPost.setHeader("Content-Type", "application/json"); 
    httpPost.setHeader("Accept", "application/json");

    if (jsonObject != null) {
        StringEntity se = new StringEntity(jsonObject.toString());
        httpPost.setEntity(se);
    }

    return new DefaultHttpClient().execute(httpPost);
}