19

私のコードは次のようなものです:

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のユーザーエージェント (存在する場合) を認識しますか?

4

3 に答える 3

21

に影響を与える前にヘッダーを設定する必要があります。接続がすでに開いている場合は、ヘッダーがスローされます。InputStreamIllegalStateException

特にヘッダーに関してUser-Agentは、設定されている場合は送信する必要があります。

URLConnectionJavaDocを参照してください。

于 2008-12-01T17:51:21.810 に答える
4

質問に答えるために、コードは正しいです。getInputStream()の瞬間、HTTPgetがターゲットサーバーに送信されます。

ユーザーエージェントに関する補足事項です。設定しない場合、URLConnectionはとにかくデフォルトのものを送信します。これは次のとおりです。

User-Agent: Java/1.6.0_24 (varies depending on your java version)
于 2011-08-05T12:55:16.143 に答える