2015-11-17 188 views
-1

我真的試圖通過球衣客戶端請求的Web服務:Jersey客戶端請求的Web服務

WebResource service = client.resource(UriBuilder.fromUri("http://localhost:8080/jersey-example-new/").build()); 
System.out.println(service.path("rs/").path("account/details/1").accept(MediaType.APPLICATION_JSON).get(String.class)); 

,但我得到:

GET http://localhost:8080/jersey-example-new/rs/account/details/1 returned a response status of 406 Not Acceptable 

請注意,URL路徑http://localhost:8080/jersey-example-new/rs/account/details/1作品在瀏覽器中。 Java客戶端請求有什麼問題?

端點代碼:

@Path("account") 
public class AccountDetailsService { 

    @GET 
    @Path("/details/{param}") 
    @Produces(MediaType.TEXT_PLAIN) 
    public Response getAccountDetails(@PathParam("param") String accountName) { 
     String output = "Account Name : " + accountName; 
     return Response.status(200).entity(output).build(); 
    } 
} 
+0

這就是說,作爲迴應返回的數據不在'MediaType.APPLICATION_JSON'中。檢查你的方法生成的輸出。 – Parth

+0

顯示您的端點方法的代碼。 –

+0

@CássioMazzochiMolin看到問題 – andy007

回答

1

你應該改變

System.out.println(service.path("rs/").path("account/details/1").accept(MediaType.APPLICATION_JSON).get(String.class));

System.out.println(service.path("rs/").path("account/details/1").accept(MediaType.TEXT_PLAIN).get(String.class));

你只生產TEXT_PLAIN,但您請求的媒體類型APPLICATION_JSON(通過接受標題),這就是爲什麼你得到的迴應,該請求是不可接受的。