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

Estou com dúvida no curso de Android : Integração com o servidor e Mapas, no exercício do capítulo Integração com outros sistemas: conectividade.

Não estou conseguindo enviar o JSON. Tento capturar a exception gerada sem tratamento nenhum conforme mostrado no exemplo. Ao debugar fico surpreso: o catch recebe uma exception nula. Pode isso acontecer? Estou imaginando que o endereço http://www.caelum.com.br/mobile seja um endereço para teste do json. Caso não seja, talvez esteja aí o problema. Alguém conseguiu fazer este exemplo? Segue meu código:

public String post(String json) {
        try {
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost post = new HttpPost(url);
            post.setEntity(new StringEntity(json));
            post.setHeader("Accept", "application/json");
            post.setHeader("Content-type", "application/json");
            HttpResponse response = httpClient.execute(post);
            String jsonResposta = EntityUtils.toString(response.getEntity());
            return jsonResposta;

        } catch (Exception e) {
            Log.i("TESTE", e.getMessage()); // Essa linha gera uma nova exception (nullPointerException)!!
            throw new RuntimeException(e);
        }
    }

Segue meu json gerado:

{"List":[{"aluno":[{"id":1,"nome":"Rodrigo","nota":9},{"id":2,"nome":"Jose","nota":7},{"id":3,"nome":"Maria","nota":8}]}]}

3 respostas

Tenta pegar a Exception mãe, ao invés de exception, no Catch, algo como HTTPException, e tenta novamente.

Consegui pegar ele como uma IOException:

Ao imprimir o stacktrace ele mostra: java.net.UnknownHostException: www.caelum.com.br

Será que o endereco passado no curso não está disponível para receber estas solicitações?

solução!

Eu estava na doce ilusão de que o endereço: http://www.caelum.com.br/modile tinha sido criado para que pudéssemos testar nossa app. Criei um php aqui em casa pra testar msm assim não tava dando certo. Descobri que o problema estava na permissão (descobri também que se eu passar um site qualquer q não vá tratar meu json ele simplesmente vai apresentar o html da página):