从Java Client获取Swagger JSON调用主体

问题描述 投票:0回答:1

我成功地使用Swagger生成了一个带swagger-codegen-cli的java客户端。

我有很多调用(获取,放置等),没有任何问题。我现在遇到一个特定调用的问题,并且对于调试我需要读取我的调用生成的完整JSON,但我无法在任何地方找到它。

我试过调试器无处不在:类ApiClient作为元素private JSON json;,但我还没有找到它的全身。

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

谢谢

java swagger swagger-codegen
1个回答
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身体的印刷品。

© www.soinside.com 2019 - 2024. All rights reserved.