为什么我的HttpPost请求被分解为两个请求?

时间:2011-11-16 04:36:17

标签: java android asp.net-mvc http-post

只是一些启动信息。我正在编写一个Andorid应用程序,它使用MVC平台与使用C#.Net编写的服务器进行通信。每个请求都是一个帖子,ActionFilter属性确保了这一点。但是由于这个问题,.Net将HttpMethod解析为“ST”。

以下是我全局用来从我的应用程序发出Web请求的代码:

private String MakeRequest(String action, String params){       
    try {
        HttpPost request = new HttpPost(mProtocol + mSubDomain + mHost + action);

        String args;
        if (params != null) {
            args = params;
        } else {
            args = "[]";
        }

        StringEntity requestEntity;
        requestEntity = new StringEntity(args);
        requestEntity.setContentType("application/json;charset=UTF-8");
        requestEntity.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"application/json;charset=UTF-8"));
        request.setEntity(requestEntity);   

    HttpResponse response = mHttpClient.execute(request);

        HttpEntity responseEntity = response.getEntity();

        String jString = EntityUtils.toString(responseEntity);

        return jString;

    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

我只有一个特定方法的问题所有其他方法都可以正常工作。

以下链接指向包含流量的pcap文件,因此它清晰可见。 (我已将其过滤为仅适用的行) http://dl.dropbox.com/u/315661/defect.pcap

1 个答案:

答案 0 :(得分:2)

您是否尝试在POST中禁用100-Continue?您通常不需要它,因为它只会增加您与服务器通信的开销 - 如果服务(或设备与服务之间的任何工具包, 会导致问题,例如代理等)你发帖到的并不完全符合。

HttpProtocolParams.setUseExpectContinue(params, false)