如果在向 API 发送 POST 调用时使用 Retrofit2,如何以 JSON 格式查看请求正文?
How to see request body in JSON format if Retrofit2 is used while sending POST call to API?
我正在向服务器发送一个 POST 请求,我的界面是 Retrofit2 将其转换为 JSON
public interface LoginService {
@POST("auth/signin")
@FormUrlEncoded
Call<CurrentUser> signin(
@Field("email") String email,
@Field("password") String password,
@Field("device_os") String device_os,
@Field("device_identity") String device_id
);
}
为了调试,我想以 JSON 格式查看此请求正文。
请帮忙!提前致谢 。
您可以将 Interceptor
用于 OkHttpClient
,然后在 intercept
方法中您将拥有:
...
Request.Builder builder = chain.request().newBuilder();
Request request = builder.build();
String bodyString = bodyToString(request);
...
private String bodyToString(final Request request) {
try {
final Request copy = request.newBuilder().build();
final Buffer buffer = new Buffer();
if (copy.body() != null) {
copy.body().writeTo(buffer);
return buffer.readUtf8();
}
return "";
} catch (final IOException e) {
return "bodyToString error.";
}
}
检查这个
你可以用 logging interceptor 来代替它。
我正在向服务器发送一个 POST 请求,我的界面是 Retrofit2 将其转换为 JSON
public interface LoginService {
@POST("auth/signin")
@FormUrlEncoded
Call<CurrentUser> signin(
@Field("email") String email,
@Field("password") String password,
@Field("device_os") String device_os,
@Field("device_identity") String device_id
);
}
为了调试,我想以 JSON 格式查看此请求正文。
请帮忙!提前致谢 。
您可以将 Interceptor
用于 OkHttpClient
,然后在 intercept
方法中您将拥有:
...
Request.Builder builder = chain.request().newBuilder();
Request request = builder.build();
String bodyString = bodyToString(request);
...
private String bodyToString(final Request request) {
try {
final Request copy = request.newBuilder().build();
final Buffer buffer = new Buffer();
if (copy.body() != null) {
copy.body().writeTo(buffer);
return buffer.readUtf8();
}
return "";
} catch (final IOException e) {
return "bodyToString error.";
}
}
检查这个
你可以用 logging interceptor 来代替它。