Получите тело вызова Swson JSON из Java-клиента - PullRequest
0 голосов
/ 30 августа 2018

Я сгенерировал Java-клиент с Swagger, успешно используя swagger-codegen-cli.

У меня много вызовов (получить, положить и т. Д.), Которые работают без проблем. Теперь у меня проблема с конкретным вызовом, и для отладки мне нужно прочитать полный JSON, сгенерированный моими вызовами, но я нигде не могу его найти.

Я пробовал везде с отладчиком: класс ApiClient как элемент private JSON json;, но я не нашел в нем и полного тела.

Где я могу найти или извлечь это?

Спасибо

1 Ответ

0 голосов
/ 11 сентября 2018

Я наконец-то нашел решение: нам нужно перехватить 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.

...