有个url
https://ibsbjstar.ccb.com.cn/app/ccbMain?MERCHANTID=105440173990021&BRANCHID=441000000&POSID=100000802&ORDERDATE=20091211&ORDERID=002939&TXCODE=410404&MAC=4f482fc4f21f68f63fba8a6002c7f0d3在ie中可以看到内容,但用java代码(URL,httpclient)都不能取到内容,同样的方式对其它的网址都可以,证书都有。
请求响应如下:DEBUG [main] (CCBPaymentTracker.java:144) -
null:[[HTTP/1.1 200 OK]]DEBUG [main] (CCBPaymentTracker.java:144) -
Date:[[Fri, 11 Dec 2009 03:13:13 GMT]]DEBUG [main] (CCBPaymentTracker.java:144) -
Content-length:[[0]]DEBUG [main] (CCBPaymentTracker.java:144) -
Set-Cookie:[[BIGipServerb2c_app_new=218431944.2336.0000; path=/]]DEBUG [main] (CCBPaymentTracker.java:144) -
Connection:[[close]]DEBUG [main] (CCBPaymentTracker.java:144) -
Server:[[testing]]这下没招了,请高手指点下,谢谢!!
https://ibsbjstar.ccb.com.cn/app/ccbMain?MERCHANTID=105440173990021&BRANCHID=441000000&POSID=100000802&ORDERDATE=20091211&ORDERID=002939&TXCODE=410404&MAC=4f482fc4f21f68f63fba8a6002c7f0d3在ie中可以看到内容,但用java代码(URL,httpclient)都不能取到内容,同样的方式对其它的网址都可以,证书都有。
请求响应如下:DEBUG [main] (CCBPaymentTracker.java:144) -
null:[[HTTP/1.1 200 OK]]DEBUG [main] (CCBPaymentTracker.java:144) -
Date:[[Fri, 11 Dec 2009 03:13:13 GMT]]DEBUG [main] (CCBPaymentTracker.java:144) -
Content-length:[[0]]DEBUG [main] (CCBPaymentTracker.java:144) -
Set-Cookie:[[BIGipServerb2c_app_new=218431944.2336.0000; path=/]]DEBUG [main] (CCBPaymentTracker.java:144) -
Connection:[[close]]DEBUG [main] (CCBPaymentTracker.java:144) -
Server:[[testing]]这下没招了,请高手指点下,谢谢!!
你可能只发送了
GET https://ibsbjstar.ccb.com.cn/app/ccbMain?MERCHANTID=105440173990021&BRANCHID=441000000&POSID=100000802&ORDERDATE=20091211&ORDERID=002939&TXCO
Host: ibsbjstar.ccb.com.cn这样最必须的信息,而类似User-Agent, Accept-Encoding, Accept, Accept-Charset之类的头信息没有发送
Host ibsbjstar.ccb.com.cn
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language zh-cn,zh;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset GB2312,utf-8;q=0.7,*;q=0.7
Keep-Alive 300
Connection keep-alive
Cookie BIGipServerb2c_app_new=319095240.42271.0000
If-Modified-Since Fri, 15 Jun 2007 12:36:27 GMT
Cache-Control max-age=0
HttpURLConnection connection = (HttpURLConnection) url.openConnection(new Proxy(Type.HTTP, new InetSocketAddress("mh-adsl", 8080)));
这样的代码提交的,其它几个参数在ie提交的时候能看的到吗?我就奇怪,ie能看到,我的代码就取不到
我这边和浏览器看到的内容(至少Content-Length是一样的1635):信息提示系统忙,请稍后再试
URL url = new URL(
"https://ibsbjstar.ccb.com.cn/app/ccbMain?MERCHANTID=105440173990021&BRANCHID=441000000&POSID=100000802&ORDERDATE=20091211&ORDERID=002939&TXCO");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
int contentLength = connection.getContentLength();
System.out.println(contentLength);
TO ALL: 工欲善其事,必先利其器,FireFox+FireBug或者类似工具,是开发web必备的,尤其是向lz这样开发http client的时候,查看与服务器间通讯时request&response的http header信息,同时还需了解RFC 2616(http1.1)协议
System.getProperties().setProperty("httpclient.useragent", "Mozilla/4.0");
就可以了。
谢谢 shine333,结贴!