【问题标题】:Android: Sending JSON to a C# webserviceAndroid:将 JSON 发送到 C# web 服务
【发布时间】:2025-11-22 10:00:01
【问题描述】:

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

但是,我的所有请求最终都以 data 为空。以下是我尝试在 android 应用程序中使用 web 服务的方式:

public void postData(String myValue) { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("@987654321@"); 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); }

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

【问题讨论】:

  • 尝试提前调用api REST api客户端。看看你是否得到了正确的回应。如果不是,那么很可能是网络服务的问题。

标签: c# java android json web-services


【解决方案1】:

你试过这个问题的答案吗? https://*.com/a/2938787/389141

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

【讨论】:

  • 是的,我尝试了一个非常相似的方法,但是我使用了 StringEntity 因为我只是想发布一个 JSON 字符串。我仍然得到 data 为空。我想知道我是否错误地传递了我的参数?
  • 我不确定。我从未尝试过使用 StringEntity。使用该问题的答案我会更幸运。如果这不起作用,我不确定问题是什么:(
  • 你的 webservice 方法是什么样的?
【解决方案2】:

您确定要传递 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);
}

【讨论】: