web-dev-qa-db-ja.com

Android HTTPユーザーエージェント

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).

どうしたの?

36
user430926

作成するリクエストごとにsetHeader()を呼び出したくない場合は、httpクライアントパラメータCoreProtocolPNames.USER_AGENT。この後、HTTPクライアントは各ヘッダーにこのヘッダーパラメーターを自動的に追加します。

何かのようなもの:

client.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "Custom user agent");

HttpClientを作成するとき。

60
Nic Strong

デフォルトのユーザーエージェントを使用する場合は、受け入れられた回答を完了するためにSystem.getProperty( "http.agent")を使用します。

client.getParams().setParameter(CoreProtocolPNames.USER_AGENT,
                                System.getProperty("http.agent"));
69
Maragues

独自のユーザーエージェントヘッダーを設定する場合は、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メソッドです。

13

Webviewを使用してuseragentを読むことができます:

new WebView(this).getSettings().getUserAgentString();

または、システムプロパティを使用します。

System.getProperty("http.agent")

ソース: https://stackoverflow.com/a/50610164/3317927

0
Jesudas Lobo