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

标签 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

最佳答案

您是否尝试过在 POST 中禁用 100-Continue?您通常不需要它,因为它只会增加与服务器的通信的更多开销 - 如果服务(或您的设备和服务之间的任何套件)可能会导致问题,例如代理等)您发布的内容不完全符合。

HttpProtocolParams.setUseExpectContinue(params, false)

关于java - 为什么我的 HttpPost 请求被分成两个请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8146788/

相关文章:

java - 有没有办法在Javadoc中引用bean的属性(getter和setter)?

java - 自定义 DatePicker 以选择年份和月份

java - SQLiteStatement预编译语句良好实践

java - 无法在 Android 应用程序中读取 R.Java 中的内容

asp.net-mvc - Django 的 Http 动词装饰器?

java - 我的 "Collatz conjecture"有什么问题吗?

java - 生成所有可能的 8 位二进制字符串

android - 想在 Cocos2d 中为我的 SDK 创建一个插件

c# - Razor 部分名称的提示/流利?

c# - 具有多个数据源的数据层架构