从 Java 客户端获取 Swagger JSON 调用主体
Get Swagger JSON call body from Java Client
我已经使用 swagger-codegen-cli
成功生成了 java 客户端 Swagger
。
我有很多调用(get、put 等)都没有问题。
我现在遇到了一个特定调用的问题,为了调试,我需要阅读我的调用生成的完整 JSON
,但我无法在任何地方找到它。
我到处都试过调试器:class ApiClient
作为一个元素 private JSON json;
,但我也没有在其中找到完整的主体。
我在哪里可以找到或提取它?
谢谢
终于找到了解决办法:我们需要在buildCall
方法的最后截取classApiClient
中的com.squareup.okhttp.Request
[=16] =]
我在 return httpClient.newCall(request);
调用我的新方法 printRequestBody(request);
之前添加了该方法,如下所示。
import okio.Buffer;
import okio.BufferedSink;
private void printRequestBody(Request request) {
RequestBody requestBody;
if(request.body() == null){
System.out.println(request.tag().toString());
return;
}else{
requestBody = request.body();
}
Buffer buffer = new Buffer();
try {
requestBody.writeTo(buffer);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(request.toString() + " --> "+buffer.readUtf8());
}
这样我就成功打印了我的 json body。
我已经使用 swagger-codegen-cli
成功生成了 java 客户端 Swagger
。
我有很多调用(get、put 等)都没有问题。
我现在遇到了一个特定调用的问题,为了调试,我需要阅读我的调用生成的完整 JSON
,但我无法在任何地方找到它。
我到处都试过调试器:class ApiClient
作为一个元素 private JSON json;
,但我也没有在其中找到完整的主体。
我在哪里可以找到或提取它?
谢谢
终于找到了解决办法:我们需要在buildCall
方法的最后截取classApiClient
中的com.squareup.okhttp.Request
[=16] =]
我在 return httpClient.newCall(request);
调用我的新方法 printRequestBody(request);
之前添加了该方法,如下所示。
import okio.Buffer;
import okio.BufferedSink;
private void printRequestBody(Request request) {
RequestBody requestBody;
if(request.body() == null){
System.out.println(request.tag().toString());
return;
}else{
requestBody = request.body();
}
Buffer buffer = new Buffer();
try {
requestBody.writeTo(buffer);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(request.toString() + " --> "+buffer.readUtf8());
}
这样我就成功打印了我的 json body。