从Java客户端获取Swagger JSON调用主体

时间:2018-08-30 09:18:42

标签: java swagger swagger-codegen

我已经成功使用Swaggerswagger-codegen-cli生成了一个Java客户端。

我打了很多电话(接听,接听等),都没有问题。 我现在遇到一个特定呼叫的问题,为了进行调试,我需要阅读由呼叫生成的完整JSON,但我在任何地方都找不到。

我到处都尝试过调试器:类ApiClient作为元素private JSON json;,但我也没有在其中找到完整的内容。

我在哪里可以找到或提取它?

谢谢

1 个答案:

答案 0 :(得分:0)

我终于找到了解决方案:我们需要在com.squareup.okhttp.Request方法的末尾截获类ApiClient中的buildCall

我在调用新方法return httpClient.newCall(request);之后紧接着printRequestBody(request);处添加了该方法。

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正文的打印内容。