質問

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

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クライアントです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top