3

この行を使用して Java プログラムでストリームを開いていますが、実際のユーザー エージェントが原因でブロックされていると思います。

private InputStream is = new URL(a).openStream();  

a は URL を含む文字列です。

ユーザー エージェントを設定する最も簡単な方法は何ですか? 私はそれらについて知ったばかりなので、さらなる情報があれば大歓迎です. 例: Mozilla/5.0 に設定したい。さらに情報を追加する必要がありますか? もしそうなら、何をどのように含めるべきですか?また、ユーザー エージェントの設定に関する法的な問題について懸念する必要があるため、これは厳密に許可されていますか? その質問が意味をなさない場合はお詫び申し上げます。それは、私がユーザー エージェント (基本的にはプログラムが送信するもの) についてほとんど知識がなく、ユーザー エージェントを登録する必要があるかどうかわからないためです。 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.17 (Gecko のような KHTML) バージョン/6.0.2 Safari/536.26.17

ありがとう

Psこれについて同様の質問を読みましたが、答えからあまり理解できませんでした-私はJavaの初心者で、ファイルとURLへのストリームを開こうとし始めたばかりです。

4

1 に答える 1

5

ユーザー エージェントを設定する最も簡単な方法は何ですか?

URLConnection urlConnection = new URL(a).openConnection();
urlConnection.addRequestProperty("User-Agent", "Mozilla/5.0");
InputStream is = urlConnection.getInputStream();

Mozilla/5.0に設定したいです。さらに情報を追加する必要がありますか?

好きなように設定できます。実際には、アプリケーションを識別することをお勧めします。そうしないと、すべての Java プログラムが単純に次のメッセージを送信します。

User-Agent: Java/1.7.0_11

また、ユーザー エージェントの設定に関する法的な問題について懸念する必要があるため、これは厳密に許可されていますか?

いいえ、任意のユーザー エージェントを自由に使用できます。さらに、ユーザー エージェントを偽造することは違法ではありません。しかし、Web サイトが に基づいて (特にセキュリティに関して) 決定を下した場合、User-Agentそれはほとんど違法であるほど悪いものです ;-) (参照: Java - URL から html コードを取得しない)。

于 2013-02-02T16:58:03.007 に答える