質問

ようにしているの解析をホームページでのJavaを用いたとのURLConnection.ようにしているユーザーエージェントのようになります:

java.net.URLConnection c = url.openConnection();
c.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");

はじめユーザーエージェントの一つを指定し、"Java/1.5.0_19"に追加されます。があるので、真に設定のユーザエージェントなこのほか?

役に立ちましたか?

解決

手オフ、http.agent""システムプロパティを設定すると、トリックを行う可能性があります(私は私の目の前にあるコードを持っていません)。

あなたはして逃げるかもしれません

 System.setProperty("http.agent", "");

しかし、それはそれは、起動時に値をキャッシュした場合(実際には、私はそれがないとは思わない)、あなたとURLプロトコルハンドラの初期化の間にレースを必要とするかもしれません。

プロパティは、(6u10のからアプレットが利用できる)JNLPファイルを介して、コマンドラインで設定することができます:

-Dhttp.agent=

またはラッパーコマンドのます:

-J-Dhttp.agent=

他のヒント

だけは明確化のために:setRequestProperty("User-Agent", "Mozilla ...")は今だけで正常に動作し、最後にjava/xxを追加しません! Javaの1.6.30以降で少なくともます。

私はnetcatを(ポートリスナー)と私のマシンに耳を傾けます:

$ nc -l -p 8080

あなたは生のHTTPヘッダ-よう要求されます何かを、見るように、それは単に、ポートでリッスンします。

とのsetRequestPropertyせずに次のhttp-ヘッダを得ます:

GET /foobar HTTP/1.1
User-Agent: Java/1.6.0_30
Host: localhost:8080
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

そしてWITHのsetRequestPropertyます:

GET /foobar HTTP/1.1
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2
Host: localhost:8080
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
あなたが見ることができるように

ユーザエージェントが正しく設定されました。

全例:

import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;


public class TestUrlOpener {

    public static void main(String[] args) throws IOException {
        URL url = new URL("http://localhost:8080/foobar");
        URLConnection hc = url.openConnection();
        hc.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");

        System.out.println(hc.getContentType());
    }

}

その仕 設定のユーザーエージェントのaddRequestProperty.

URL url = new URL(<URL>);
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
httpConn.addRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0");
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top