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

Java 为什么我的HttpPost请求被分成两个请求?,java,android,asp.net-mvc,http-post,Java,Android,Asp.net Mvc,Http Post,只是一点入门信息。我正在编写一个android应用程序,它使用MVC平台与用C#Net编写的服务器进行对话。每个请求都是一个post,ActionFilter属性确保了这一点。但是,由于这个问题,.Net将HttpMethod解析为“ST” 以下是我全局使用的代码,用于从我的应用程序发出web请求: private String MakeRequest(String action, String params){ try { HttpPost request

只是一点入门信息。我正在编写一个android应用程序,它使用MVC平台与用C#Net编写的服务器进行对话。每个请求都是一个post,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文件,该文件包含通信量,因此清晰可见。(我已将其筛选到仅适用的行)

您是否尝试过在您的帖子中禁用100 Continue?您通常不需要它,因为它只会增加您与服务器的通信开销——如果您发布到的服务(或设备与服务之间的任何套件,如代理等)不完全一致,则可能会导致问题

HttpProtocolParams.setUseExpectContinue(params, false)

另外,值得一提的是,在20-30次尝试中,我曾经看到过它能工作一次。在它成功的一次请求中,只有一个数据包。先生,你是一个救生员!非常感谢你们,我希望我能投两次票,我自己永远也不会想到这一点在移动设备上默认启用DIt是一个非常可怕的功能,开发人员通常知道他在哪里发帖-我认为即使是
AndroidHttpClient
也会默认启用它。我读到我应该使用
AndroidHttpClient
,但我相信我有很多问题,所以我只使用了
DefaultHttpClient
,到目前为止,它一直工作得很好D
AndroidHttpClient
附带了一些您应该使用的基本设置,并且还可以防止您在UI线程上执行愚蠢的sh-t操作,除此之外,它非常“meh”。