日期:2014-05-18  浏览次数:20648 次

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

------解决方案--------------------
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);
}
------解决方案--------------------
是这样输出的 out.println(value);, 这个远程的JSP取这个值的时候如果这个值有内容返回这个值内容,如果没有内容返回0,我现在收到的是0,说明能得到返回的内容,但是从浏览器访问是有这个值的,不是0。
------解决方案--------------------
不是取不到远程返回的内容的问题,而是为什么用这种方法请求得不到request.getHeader("x-up-subno")的内容
------解决方案--------------------
UP
------解决方案--------------------
这是remote问题吧,而你request取值并不实现remote,远程调用.如果这样可以实现...真强了!!!
------解决方案--------------------
再另一帖里也作了同样的回复了。

应该是你的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的地方也作相应处理。

------解决方案--------------------
学习中!~