URLConnectionにヘッダーを設定する適切な方法は何ですか?
-
11-07-2019 - |
質問
私のコードは次のようなものです:
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はデフォルトのURLを送信します。
User-Agent: Java/1.6.0_24 (varies depending on your java version)
URLConnectionなどの低レベルのコンストラクトの使用はお勧めしません。 HTTPリクエストを送信するためのライブラリはたくさんありますが、最も顕著なものはApache HTTPクライアントです。
所属していません StackOverflow