远程服务器上有一个JSP,它的作用上得到请求的request头域里的一个信息request.getHeader("x-up-subno")然后输出,如果在浏览器里直接敲地址请求这个JSP是可以看到返回的这个值的,可是我在一个本地类里面用HttpURLConnection远程请求这个JSP,却得不到这个值,请问这是什么原因呢,这样做可以吗,如果不行,我本地该怎么得到这个值呢,谢谢了

解决方案 »

  1.   

    have a try
    InputStream is = your_HttpURLConnection_instance.getInputSteeam();
    BufferedReader br = new BufferedReader(is);
    for (String buf=br.readLine; buf!=null; buf=br.readLine()) {
        System.out.println(buf);
    }
      

  2.   

    是这样输出的 out.println(value);,    这个远程的JSP取这个值的时候如果这个值有内容返回这个值内容,如果没有内容返回0,我现在收到的是0,说明能得到返回的内容,但是从浏览器访问是有这个值的,不是0。
      

  3.   

    不是取不到远程返回的内容的问题,而是为什么用这种方法请求得不到request.getHeader("x-up-subno")的内容 
      

  4.   

    这是remote问题吧,而你request取值并不实现remote,远程调用.如果这样可以实现...真强了!!!
      

  5.   

    再另一帖里也作了同样的回复了。应该是你的header信息没有设置
    在connect之前,先追加header信息,然后再connect
    追加header信息可以这样
    your_httpurlconnection.addRequestProperty("x-up-subno", "your_value");LZ在用浏览器连接时手动,header信息是自己设置的还是通过什么方式设置的?
    用浏览器连接的时候,浏览器会自动地把cookie信息追加到header里,如果你的JSP用到了session,浏览器请求以后会自动地得到cookie信息,如果服务器端是明确地使用addCookie一类来设置cookie时,如果客户端支持cookie,那么cookie被保存,如果不支持,则保存在内存里,浏览器关掉后就被释放了;如果服务器端不是明确地使用addCookie一类来设置cookie时,那么cookie就会保存在内存里直到浏览器关闭。
    "x-up-subno"这样的header信息应该不是标准的http头信息(也就是http固有的),如果服务器端能取到则说明客户端应该在某个地方设置过了,LZ最好先确定浏览器连接时header信息是如果设置的,然后再想方法在httpurlconnection的地方也作相应处理。