从 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。