2008-12-01 116 views
18

我的代码是这样的:在URLConnection中设置标题的正确方法是什么?

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的用户代理(如果有的话)?

回答

20

标题必须先设置才能使InputStream有任何影响 - 如果连接已打开,将会抛出IllegalStateException

只要User-Agent标题具体,它应该发送,如果它已被设置。请参阅URLConnection JavaDoc。

+1

此链接已损坏。 – Fabii 2012-04-03 14:32:15

4

要回答这个问题,代码是正确的。 getInputStream()这一刻,一个HTTP get被发送到目标服务器。

用户代理一个侧面说明,如果你不设置它,URLConnection的将发送默认的,无论如何,那就是:

User-Agent: Java/1.6.0_24 (varies depending on your java version) 
-2

我建议不要使用低级别的结构,例如作为URLConnection。有很多用于发送HTTP请求的库,其中最着名的是Apache HTTP Client。

+0

(应该是评论,不回答问题) – BadZen 2015-04-07 17:00:33

相关问题