чтение ответа JSON как строки с помощью клиента jersey

Я использую клиент Джерси для публикации файла в URI REST, который возвращает ответ как json. Мое требование-прочитать ответ как есть (json) на строку.

вот кусок кода, который отправляет данные в веб-службу.

final ClientResponse clientResp = resource.type(
            MediaType.MULTIPART_FORM_DATA_TYPE).
            accept(MediaType.APPLICATION_JSON).
            post(ClientResponse.class, inputData);
     System.out.println("Response from news Rest Resource : " + clientResp.getEntity(String.class)); // This doesnt work.Displays nothing.

clientResp.getLength () имеет 281 байт, который является размером ответа, но clientResp.его код(строка.класс) ничего не возвращает.

любые идеи, что может быть неправильно здесь?

3 ответов


я смог найти решение проблемы. Просто нужно было вызвать метод bufferEntity перед getEntity (String.класс.) Это вернет ответ в виде строки.

   clientResp.bufferEntity();
   String x = clientResp.getEntity(String.class);

хотя приведенный выше ответ верен, используя Jersey API v2.7 это немного отличается с Response:

Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://localhost:8080");
Response response = target.path("api").path("server").path("ping").request(MediaType.TEXT_PLAIN_TYPE).get();
System.out.println("Response: " + response.getStatus() + " - " + response.readEntity(String.class));

Если у вас все еще есть проблемы с этим, вы можете рассмотреть возможность использования остальное-заверил