Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

recebendo os dados no servidor

Estou tentando criar um servidorzinho no meu Eclipse para treinar a função de sincronizar. Mas não estou sabendo como tratar o StringEntity que é enviado pelo post na classe WebClient:

post.setEntity(new StringEntity(json)); post.setHeader("Content-type", "application/json"); post.setHeader("Accept", "application/json");

Estou tentando usar um VRaptor, mas não sei como receber isso no método. Pensei em fazer um servidor mais simples usando HttpServlet, mas ainda sim não sei como tratar a requisição. Alguma ideia?

2 respostas
solução!

Oi Luis, tudo bem? Como você está tentando receber esse json no VRaptor?

Voc6e pode ver um exemplo disso por esse link da documentação:

http://www.vraptor.org/en/docs/controllers-rest/#consuming-in-other-formats

Basicamente, você terá um método com @Consumes com media type que quer consumir, por exemplo JSON ou XML, e receberá um objeto que represente esse JSON. Por exemplo, se seu JSON for:

{aluno: 
    {
        "id":1,
        "nome":"Ettore",
        "telefone":"1155712751",
        "endereco":"Rua Vergueiro, 3185",
        "site":"http://www.alura.com.br",
        "nota":7
}}

você pode criar uma classe Aluno com id, nome, etc e passar ela como argumento do método do controller do vraptor:

@Consumes("application/json")
@Post
public void add(Aluno aluno) {
    // faz alguma coisa com o aluno que foi populado
}

Foi exatamente assim que tentei, mas eu estava recebendo um nullpointer. Isso é, não estava chegando nada no meu servidor. Tentei em um servidor PHP agora com file_get_contents e consegui. No caso do VRaptor eu estava na dúvida se era assim mesmo, acredito que eu tenha feito algo errado. Tentando novamente dessa maneira consegui. Obrigado pela resposta.