Http_user_agentで実際のデバイスを取得するにはどうすればよいですか? WebViewを使用すると、次のような実際の値を取得できます。
[HTTP_USER_AGENT] => Mozilla/5.0(Linux; U; Android 2.2; en-gb; LG-P500 Build/FRF91)
AppleWebKit/533.0 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
しかし、Apache接続を使用すると、結果は異なります。
[HTTP_USER_AGENT] => Apache-HttpClient/UNAVAILABLE(Java 1.4).
どうしたの?
作成するリクエストごとにsetHeader()
を呼び出したくない場合は、httpクライアントパラメータCoreProtocolPNames.USER_AGENT
。この後、HTTPクライアントは各ヘッダーにこのヘッダーパラメーターを自動的に追加します。
何かのようなもの:
client.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "Custom user agent");
HttpClient
を作成するとき。
デフォルトのユーザーエージェントを使用する場合は、受け入れられた回答を完了するためにSystem.getProperty( "http.agent")を使用します。
client.getParams().setParameter(CoreProtocolPNames.USER_AGENT,
System.getProperty("http.agent"));
独自のユーザーエージェントヘッダーを設定する場合は、setHeader
メソッドを使用する必要があります。
HTTP Postリクエストの場合、このように設定するだけです。
private String url = "http://myfancyurl.com/";
private String ua = "My Custom UA Header String";
private HttpPost post = new HttpPost(url);
post.setHeader("User-Agent", ua);
これは、カスタムユーザーエージェント文字列を設定する方法の簡単な説明にすぎません。コードが異なる場合があります。重要な部分はsetHeader
メソッドです。
Webviewを使用してuseragentを読むことができます:
new WebView(this).getSettings().getUserAgentString();
または、システムプロパティを使用します。
System.getProperty("http.agent")