ホームページ >Java >&#&チュートリアル >Retrofit 2 のリクエストボディとレスポンスボディをログに記録するにはどうすればよいですか?

Retrofit 2 のリクエストボディとレスポンスボディをログに記録するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-19 19:35:10197ブラウズ

How to Log Retrofit 2 Request and Response Bodies?

Retrofit 2 でのリクエストとレスポンスのログ記録

Retrofit 1 では、リクエストで送信された正確な JSON のログ記録は、setLog() とsetLogLevel()。ただし、Retrofit 2 ではこれらのメソッドが非推奨になったため、開発者はネットワーク トラフィックを適切にログに記録する方法を疑問に思っています。

HttpLoggingInterceptor の使用

解決策は、追加できる HttpLoggingInterceptor にあります。 OkHttpClient に送信してリクエストとレスポンスの両方をログに記録しますbody:

HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);

次に、インターセプターを追加した OkHttpClient を使用して Retrofit オブジェクトを作成します:

OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl(...)
        .client(client)
        .addConverterFactory(GsonConverterFactory.create())
        .build();

ロギング レベルを BODY に設定すると、setLogLevel で生成されたものと同様の詳細なログが提供されます。レトロフィットの (RestAdapter.LogLevel.FULL) 1.

ClassNotFoundException の解決

java.lang.ClassNotFoundException が発生した場合は、logging-interceptor のバージョンが Retrofit バージョンと一致していることを確認してください。場合によっては、古い Retrofit バージョンには、以前のロギング インターセプタ バージョンが必要になる場合があります。

以上がRetrofit 2 のリクエストボディとレスポンスボディをログに記録するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。