我用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");
我现在是想解决在提交数据时不出现上面所说的异常,在这里先谢谢各位看这个问题,希望可以找到帮助,谢谢!