【问题标题】:Why my HttpPut sends a GET request from my Android?为什么我的 HttpPut 从我的 Android 发送一个 GET 请求?
【发布时间】:2011-02-22 10:46:58
【问题描述】:

我尝试从我的 Android 设备连接到 REST Web 服务并在其中放置一些数据,但我得到的只是 GET 结果。甚至我的网络服务器也坚持这是一个 GET 请求。我的代码有什么问题?

DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPut httpPut = new HttpPut(url);
httpPut.addHeader("Content-Type", "application/xml; charset=utf-8");
httpPut.addHeader("User-Agent", "Android");
HttpEntity entity = new StringEntity(data);
httpPut.setEntity(entity);
HttpResponse response = httpclient.execute(httpPut);
HttpEntity input = response.getEntity();
StringBuilder result = new StringBuilder();
if (input != null) {
    InputStream instream = input.getContent();
    result = convertStreamToString(instream);
    instream.close();
}
httpclient.getConnectionManager().shutdown();
return result.toString();

【问题讨论】:

    标签: android rest put


    【解决方案1】:

    使用 JSONStringer 这可能会解决您的问题...

    我为此付出了很多努力............

    你的代码应该看起来像这样......

    HttpPut request = new HttpPut("your URL");
    JSONStringer json = new JSONStringer()
    .object() 
     .key("cname").value(name)
     .key("cmail").value(email)
    
    .endObject();
    
    StringEntity entity = new StringEntity(json.toString());
                         entity.setContentType("application/json;charset=UTF-8");//text/plain;charset=UTF-8
                         entity.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"application/json;charset=UTF-8"));
                         request.setEntity(entity); 
                         // Send request to WCF service 
                         DefaultHttpClient httpClient = new DefaultHttpClient();
    
                         HttpResponse response = httpClient.execute(request); 
    

    谢谢...

    【讨论】:

    • 这完全没有区别 :( 当我检查我的网络服务器上的标头时,这是一个非常好的 GET 请求。
    【解决方案2】:

    我通过 POST 请求遇到了这种情况。我的问题与服务器端问题有关,涉及我们的主机使用代理和 mod_rewrite 的组合。我们的重写是将所有非 www 流量定向到 www 域,并且我们主机的代理服务器将请求转换为 GET 并删除了发布数据。我们简单的解决方案是在初始请求中只使用 www 版本,以避免重写。不需要在服务器端进行任何更改(这会很棘手)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-28
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      • 2021-03-14
      相关资源
      最近更新 更多