私のコードは次のようなものです:
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
のユーザーエージェント(存在する場合)を認識しますか?
ヘッダーmustInputStream
に影響を与える前に設定する必要があります-接続がすでに開いている場合は、IllegalStateException
がスローされます。
特にUser-Agent
ヘッダーに関しては、設定されている場合は送信する必要があります。
RLConnection JavaDocを参照してください。
質問に答えるために、コードは正しいです。 getInputStream()の瞬間、HTTPgetがターゲットサーバーに送信されます。
ユーザーエージェントに関する補足事項です。設定しない場合、URLConnectionはとにかくデフォルトのものを送信します。これは次のとおりです。
User-Agent: Java/1.6.0_24 (varies depending on your Java version)