【问题标题】:Android HttpClient issue setting Content-LengthAndroid HttpClient 问题设置 Content-Length
【发布时间】:2013-10-11 22:06:20
【问题描述】:

我尝试使用以下内容创建帖子...

HttpPost httppost = new HttpPost(URL);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
httppost.setHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_KEEP_ALIVE);
String length = String.valueOf(httppost.getEntity().getContentLength());
httppost.setHeader(HTTP.CONTENT_LEN, length); //If commented out it works

但是当我尝试运行请求时,我收到以下错误...

10-11 22:05:02.940: W/System.err(4203): org.apache.http.client.ClientProtocolException

我猜这是因为内容长度错误。

【问题讨论】:

    标签: android apache-httpclient-4.x androidhttpclient


    【解决方案1】:

    Apache HttpClient(甚至它的 fork 随 Android 一起提供)总是根据包含的 HTTP 实体的属性来计算内容长度。不需要(也不应该)手动设置Content-LengthTransfer-Encoding 标头。

    【讨论】:

    • 好的,谢谢,这意味着我的帖子请求无法正常工作还有另一个原因。这是在某处记录的吗?这可能会对未来的搜索者有所帮助。
    • @oleg +1 当我在 httpPost 的标头中设置它时,我的应用程序崩溃了。你能引导我了解 HTTPclient、java 的这些注意事项吗?
    • @EvolGate 虽然没有编译列表,但我想这将是对项目的巨大贡献。然而,大部分此类细节都可以在教程hc.apache.org/httpcomponents-client-4.3.x/tutorial/html/… 中找到
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    • 2011-04-25
    • 1970-01-01
    • 2020-07-15
    相关资源
    最近更新 更多