我已经使用swagger-codegen-cli成功地生成了一个带有Swagger的java客户端。
我有很多调用(get、put等)都没有问题。我现在遇到了一个特定调用的问题,为了进行调试,我需要读取调用生成的完整JSON,但我在任何地方都找不到它。
我在任何地方都尝试过使用调试器:将ApiClient类作为元素private JSON json;,但我也没有找到它的全部内容。
我可以在哪里找到或提取它?
谢谢
发布于 2018-09-11 20:56:48
我终于找到了一个解决方案:我们需要在buildCall方法的末尾拦截ApiClient类中的com.squareup.okhttp.Request。
我将新方法printRequestBody(request);的调用添加到return httpClient.newCall(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主体的指纹。
https://stackoverflow.com/questions/52093390
复制相似问题