我目前正在尝试将一个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);
}
我尝试了几种不同的方式,这是我最近的失败。
答案 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);
}