2016-11-22 6 views
0

У меня вопрос о том, как получить тело ответа в клиенте Джерси, когда сервер возвращает некоторый образец текста со кодом состояния 401. Пример обслуживание установки следующим образом:jersey 1.17 как получить тело ответа при возврате статуса в 401

@GET 
@Path("test401withcontent") 
public Response get401TestWithContent() 
{ 
    return Response.status(401).entity("return some text").build();  
} 

На стороне клиента (с использованием Джерси 1.17) ClientResponse.getEntity печатает null. Замечено, что content-length заголовков имеет правильное число (16 в этом случае.)

Есть другой способ, чтобы получить ответ, когда код возврата 401?

+0

Какие рамки используют сервер? Большинство таких, как Spring Web MVC, не возвращают тело ответа на 401, поскольку это подразумевается кодом состояния. – GameSalutes

+0

можете ли вы добавить заголовки из ответа на вопрос? – stringy05

+0

Эта служба должна обрабатывать все запросы REST и все ответы. Я настраиваю старую рыбку, конечную точку для трикотажа, чтобы подать 401 с некоторым ответом. Интересно, что POSTMAN get requst показывает код возврата (401) и тело ответа на любой образец текста, отправленный сервером. – user7196959

ответ

0

Вы развернули свой метод на моем тестовом веб-сайте и использовали ниже клиент получил правильный ответ.

Client client = ClientBuilder.newClient(); 
     //System.setProperty("sun.net.http.allowRestrictedHeaders", "true"); 


      Response response = client.target(
      "http://jerseyexample-ravikant.rhcloud.com/rest/jws/test401withcontent"). 
     request().get(); System.out.println(response.readEntity(String.class));