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

Comunicação com dados externos

Boa tarde.

01 - Nesta terceira parte do curso de Android é utilizada a biblioteca HttpPost, HttpClient e etc... Mas as mesmas já estão depreciadas qual biblioteca que deve ser usada atualmente para fazer comunicação com dados externos ?

02 - É ensinado com enviar um JSON via POST, como faço para enviar parâmetros em forma de strings para o servidor ?

2 respostas
solução!

Olá Guilherme!

A recomendação agora é que se faça esse tipo de operação usando a classe HttpURLConnection como no exemplo abaixo:

public String post(String json) {
    try {
        URL url = new URL("https://www.caelum.com.br/mobile");
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();

        connection.setRequestProperty("Accept", "application/json");
        connection.setRequestProperty("Content-type", "application/json");

        // aqui definimos que vamos fazer um POST
        connection.setDoOutput(true);

        // e aqui colocamos os dados do POST
        PrintStream printStream = new PrintStream(connection.getOutputStream());
        printStream.println(json);

        connection.connect();

        //trata resposta (que no nosso caso só tem uma linha)
        String jsonDeResposta = new Scanner(connection.getInputStream()).next();
        return jsonDeResposta;
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

Para fazer um GET e passar os parâmetros na URL, basta não fazer a chamada para o método setDoOutput(...) e não trabalhar com o PrintStream. Aí basta colocar os parâmetros do GET na própria URL da requisição, ok?

Abraço!

Certo tirou minha dúvida sobre a biblioteca Jeferson, mas como faço para enviar os parâmetros via POST ?