2015-08-19 12 views
5

Quando invoco codice successivo:JAX-RS response.getEntity restituisce null dopo post

Response response = target.request(MediaType.APPLICATION_JSON_TYPE) 
       .post(Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED_TYPE)); 

response.getEntity(); 

response.getEntity() è sempre nullo.

Ma quando invoco:

JsonObject json = target.request(MediaType.APPLICATION_JSON_TYPE) 
       .post(Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED_TYPE), JsonObject.class); 

variabile json non è nullo.

Ho bisogno di utilizzare la prima variante perché ho bisogno di controllare lo stato della risposta.

Perché il primo codice non funziona? E come posso ottenere il codice di stato, quindi?

risposta

6

È necessario utilizzare response.readEntity(Your.class) per restituire l'istanza del tipo desiderato. Per esempio

String rawJson = response.readEntity(String.class); 
// or 
JsonObject jsonObject = response.readEntity(JsonObject.class); 

Nota che c'è bisogno in realtà di essere un fornitore per gestire la lettura di quel tipo Java e application/json. Se si utilizza la Jersey e l'API JSON-P, vedere this. Anche per informazioni generali sui fornitori, vedi this

+0

Ty molto! Ha funzionato! – user3245504

Problemi correlati