httpclient 中 如果我手动设置Content-Length就会出现
这样的错误这是为什么啊!!!请大家帮帮忙很急!!
org.apache.http.client.ClientProtocolException
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:822)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)
at com.li.util.SendRequest.sendPost(SendRequest.java:47)
at com.li.ndws.imple.ZhongGuanCun.reply(ZhongGuanCun.java:86)
at com.li.ndws.imple.ZhongGuanCun.main(ZhongGuanCun.java:124)
Caused by: org.apache.http.ProtocolException: Content-Length header already present
at org.apache.http.protocol.RequestContent.process(RequestContent.java:67)
at org.apache.http.protocol.ImmutableHttpProcessor.process(ImmutableHttpProcessor.java:108)
at org.apache.http.protocol.HttpRequestExecutor.preProcess(HttpRequestExecutor.java:174)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:452)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
... 5 more

解决方案 »

  1.   

    晕死,头信息里面配什么Content-Length,这是请求后返回内容的长度,这是一个可变的值,你固定了肯定会报错
      

  2.   

    我是不是很懂,但是我也去做了点搜索引擎,去爬取DRW的,我头信息里面没有设置Content-Length,照样可以爬取,然后通过字面的意思,我觉得也不用设置
      

  3.   

    我也遇到这个问题了,不知楼主如何处理的?
    我用HttpClient调人家的服务
    如何手动设置请求时Content-Length的值?自动生成的像下面这样:
    12-26 18:02:31.932 DEBUG org.apache.http.headers - >> Transfer-Encoding: chunked
    12-26 18:02:31.932 DEBUG org.apache.http.headers - >> User-Agent: Apache-HttpClient/4.2-alpha1 (java 1.5)
    12-26 18:02:31.933 DEBUG org.apache.http.wire - >> "2f6[\r][\n]"
    12-26 18:02:31.934 DEBUG org.apache.http.wire - >> "<?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.。。
    服务端只认正文上面是Content-Length:xxx
    没有就报无法解析!苦闷.
    那个2f6是Content-Length的16进制,是自动生成的,能不能手动设啊?