2008-12-01 121 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

相關問題