чтение ответа 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));
Если у вас все еще есть проблемы с этим, вы можете рассмотреть возможность использования остальное-заверил