我的代码是这样的:

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客户端。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top