Como envio JSon como BODY Em uma solicitação POST para o servidor a partir de um aplicativo Android?
Estou trabalhando no meu primeiro aplicativo Android. O que estou tentando fazer é uma solicitação POST para um serviço REST. Quero que o BODY dessa solicitação seja uma String JSON.
Estou usando o GSON do google para gerar o JSON enviado ao servidor. Aqui está o código que está fazendo a solicitação POST:
HttpPost requisicao = new HttpPost();
requisicao.setURI(new URI(uri));
requisicao.setHeader("User-Agent", sUserAgent);
requisicao.setHeader("Content-type", "application/json");
HttpResponse resposta = null;
//I can see the json correctly print on log with the following entry.
Log.d(TAG, "JSon String to send as body in this request ==>> " + jsonString);
//than I try to send JSon using setEntityMethod
StringEntity sEntity = new StringEntity(jsonString, "UTF-8");
requisicao.setEntity(sEntity);
resposta = httpClient.execute(requisicao);
resultado = HttpProxy.leRespostaServidor(resposta);
O código de resposta é 400 BAD REQUEST e, no log do servidor, posso ler as informações. onde diz que o corpo não foi enviado corretamente:
13:48:22,524 ERROR [SynchronousDispatcher] Failed executing POST /peso/cadastrar/[email protected]
org.jboss.resteasy.spi.BadRequestException: Could not find message body reader for type: class java.io.Reader of content type: application/json
O código para o lado do servidor é um simples Serviço de Descanso de Costura:
@POST
@Path("/cadastrar/{userEmail}")
@Consumes(MediaType.APPLICATION_JSON)
public String cadastraPeso(@PathParam("userEmail") String email, Reader jsonString)
{
LineNumberReader lnr = new LineNumberReader(jsonString);
try {
String json = lnr.readLine();
if(json != null)
{
log.debug("String json recebida do device ==>> " + json);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "OK - o e-mail processado foi ==>> " + email;
}
O que poderia estar errado com o código do cliente Android? Eu pesquisei na web e não encontrei nenhuma informação realmente útil sobre esse erro.
[] s