57

Android アプリで okhttp 2.0 を使用していますが、すべての送信要求に対して共通のユーザー エージェントを設定する方法が見つかりませんでした。

私は次のようなことができると思った

OkHttpClient client = new OkHttpClient();
client.setDefaultUserAgent(...)

...しかし、そのような方法などはありません。もちろん、RequestBuilder をラップしてアタッチする拡張ユーティリティ メソッドを提供し.header("UserAgent")、それを使用してすべてのリクエストを構築することもできますが、既存のより単純な方法を見逃しているのではないかと思いました。

4

6 に答える 6

3

builder新しいバージョンで使用する必要があります。(2021年1月)

    client = new OkHttpClient.Builder()
            .addInterceptor(new Interceptor() {
                @NotNull
                @Override
                public Response intercept(@NotNull Chain chain) throws IOException {
                    Request originalRequest = chain.request();
                    Request requestWithUserAgent = originalRequest.newBuilder()
                            .header("User-Agent", "My Agent is so cool")
                            .build();
                    return chain.proceed(requestWithUserAgent);
                }
            })
            .build();
于 2020-09-21T16:18:55.543 に答える