高分!HttpClient提交数据到服务器出现异常:Content-Length header already present

love_lanchong 2009-11-30 08:49:21
我用swt来做一些模拟淘宝注册的应用程序,页面是http://member1.taobao.com/member/register.jhtml,其中有一步是用HttpClient提交数据到服务器,来模拟人工在电脑上的操作。但是当提交数据到服务器上的时候,抛出了异常如下:
com.wintaobao.utils.NetworkException: org.apache.http.ProtocolException: Content-Length header already present
at com.wintaobao.utils.HttpUtils.httpPostAsString(HttpUtils.java:290)
at com.wintaobao.tbreg.core.impl.tb.TBRegister.reg(TBRegister.java:219)
at com.wintaobao.tbreg.core.impl.TBHandler.reg(TBHandler.java:297)
at com.wintaobao.tbreg.core.impl.RegisterHandler.run(RegisterHandler.java:92)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.http.ProtocolException: Content-Length header already present
at org.apache.http.protocol.RequestContent.process(RequestContent.java:70)
at org.apache.http.protocol.BasicHttpProcessor.process(BasicHttpProcessor.java:290)
at org.apache.http.protocol.HttpRequestExecutor.preProcess(HttpRequestExecutor.java:160)
at org.apache.http.impl.client.DefaultClientRequestDirector.execute(DefaultClientRequestDirector.java:356)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:501)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:456)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:422)
at com.wintaobao.utils.HttpUtils.httpPostAsString(HttpUtils.java:279)
... 9 more

我怀疑是我的Post数据头封装有问题,但是我用这个封装的数据头来注册一些邮箱是没有问题的,我将封装好的数据头帖出来,大家帮忙看看:

hm.setHeader("User-agent","Mozilla/4.0");
hm.setHeader("Accept","*/*");
hm.setHeader("Accept-Language", "zh-cn,zh;q=0.5");
hm.setHeader("Accept-Encoding", "gzip,deflate");
hm.setHeader("Accept-Charset", "gb2312,utf-8;q=0.7,*;q=0.7");
hm.setHeader("Keep-Alive", "300");
hm.setHeader("Connection", "keep-alive");
hm.setHeader("Referer", referer);
hm.removeHeaders("Content-Length");


我现在是想解决在提交数据时不出现上面所说的异常,在这里先谢谢各位看这个问题,希望可以找到帮助,谢谢!
...全文
2952 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
shi20061213 2009-12-13
  • 打赏
  • 举报
回复
这个问题通常是错一次,你用线程再提交一次就不会报这个错了,你可以试试
zhanghuaigong 2009-12-13
  • 打赏
  • 举报
回复
不懂啊。
love_lanchong 2009-12-10
  • 打赏
  • 举报
回复
有没兄弟知道怎样解决的?
love_lanchong 2009-12-01
  • 打赏
  • 举报
回复
有哪位高人指点一下吗
problc 2009-12-01
  • 打赏
  • 举报
回复
抓包吧。。看看模拟的跟实际的哪儿不一样
love_lanchong 2009-11-30
  • 打赏
  • 举报
回复
试过去掉了,结果还是一样的
lbl20020123 2009-11-30
  • 打赏
  • 举报
回复
去掉Content-Length的设定。
healer_kx 2009-11-30
  • 打赏
  • 举报
回复
嗯,那简直是一定的了。。。
你为什么要remove呢?让他自己计算?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧