2013-10-24 2 views
9

저지 클라이언트를 사용하여 json으로 응답을 반환하는 REST URI에 파일을 게시하고 있습니다. 필자가 요구하는 것은 문자열에 대한 응답 (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.getEntity (String.class)는 아무 것도 반환하지 않습니다.

여기에 잘못된 아이디어가 있습니까? 당신은 여전히이 가진 문제를 가지고있는 경우

답변

15

를 사용하는 것이 좋습니다. getEntity (String.class) 전에 bufferEntity 메소드를 호출해야했습니다. 응답을 문자열로 반환합니다. 위의 대답은 정확하지만

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

이 때 정확한 Jersey 메소드는 getEntity (String.class) 대신 readEntity (String.class)입니다. –

0

, 당신은 내가이 문제에 대한 해결책을 찾을 수 있었다 rest-assured

+0

감사합니다. REST 보증은 유망한 것으로 보이지만 내 프로젝트에서는 저지 클라이언트 만 사용할 수 있습니다. :( – Sudhir

5

는, 저지의 API V2.7을 사용하여이 Response과 약간 다른 경우 : respnse에 대한

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)); 
관련 문제