有个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]]这下没招了,请高手指点下,谢谢!!

解决方案 »

  1.   

    你确保所有的HTTP头都在了吗?第二,这个处理可能是给他内部API自己用的,比如某个Ajax,只要判断Http Status Code是否正常(200)就可以了,不需要内容,所以他的Content-Length=0
      

  2.   

    to shine333:谢谢你的回复!你可以在ie中看到上面的url的内容,因为我需要解析它的内容的,响应已经是200了,获得的头就那几个
      

  3.   

    OK,你的HTTP请求是否和IE或者其他浏览器一样。
    你可能只发送了
    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之类的头信息没有发送
      

  4.   

    比如,我用FireFox + Firebug看,发送的报文中的HTTP头应当是:
    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
      

  5.   

    to shine333:     我是用
        HttpURLConnection connection = (HttpURLConnection) url.openConnection(new Proxy(Type.HTTP, new InetSocketAddress("mh-adsl", 8080)));
    这样的代码提交的,其它几个参数在ie提交的时候能看的到吗?我就奇怪,ie能看到,我的代码就取不到
      

  6.   

    是不是你代理的问题???
    我这边和浏览器看到的内容(至少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);
      

  7.   

    IE这种烂货,不能!
    TO ALL: 工欲善其事,必先利其器,FireFox+FireBug或者类似工具,是开发web必备的,尤其是向lz这样开发http client的时候,查看与服务器间通讯时request&response的http header信息,同时还需了解RFC 2616(http1.1)协议
      

  8.   

    非常感谢shine333的指导,我等下再按照你的指示去试试。。
      

  9.   

    搞定了,就是那个User-Agent参数:
    System.getProperties().setProperty("httpclient.useragent", "Mozilla/4.0");
    就可以了。
    谢谢  shine333,结贴!