什么是一个URLConnection设置页眉的正确方法?
-
11-07-2019 - |
题
我的代码是这样的:
URLConnection cnx = address.openConnection();
cnx.setAllowUserInteraction(false);
cnx.setDoOutput(true);
cnx.addRequestProperty("User-Agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
InputStream is = cnx.getInputStream();
它是确定的,如果我设置的标头之前,我的InputStream
?将我的头被发送,或将在服务器看到默认URLConnection
的用户代理(如果有的话)?
解决方案
标头的必须强>先于得到InputStream
有任何影响设置 - 一个IllegalStateException
将被抛出,如果连接已经打开
至于User-Agent
头具体地说,应当如果它已被设置发送。
请参阅的URLConnection 的JavaDoc。
其他提示
要回答这个问题,代码是正确的。此刻的getInputStream(),一个HTTP GET被发送到目标服务器。
在用户代理一个侧面说明,如果你不设置它,URLConnection的将发送默认的,无论如何,这是:
User-Agent: Java/1.6.0_24 (varies depending on your java version)
我建议不要使用低级别的结构如URLConnection的。有很多库发送HTTP请求,其中最突出的是Apache的HTTP客户端。
不隶属于 StackOverflow