1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Enviar e receber JSON do Android para WebService Rest

Primeiramente peço desculpas pela pergunta um tanto "iniciante", mas é que não tenho nenhuma noção de como fazer isso.

Tenho um WebService Rest pronto e já hospedado feito por um amigo (inclusive já possuo as URL's) . O que eu preciso é criar métodos no meu aplicativo Android para enviar um JSON e receber outro JSON (Já possuo os métodos para criar o JSON e para interpretar o JSON recebido). O problema é que não faço ideia de como...

Seguindo alguns tutoriais e videos que achei pela internet, criei uma classe HTTPConnection:

public class HTTPConnection {

    public static String access(String adress) {

        try {
            URL url = new URL(adress);
            URLConnection connection = url.openConnection();
            InputStream is = connection.getInputStream();

            Scanner scanner = new Scanner(is);
            String conteudo = scanner.useDelimiter("//A").next();
            scanner.close();

            return conteudo;

        } catch (Exception e) {
            return null;
        }
    }
}

Uma classe WebClient:

public class WebClient {

    public String post (String json) {
        try { 
            URL url = new URL("http://aqui.a.url" + json);            //aqui já botei a URL que meu amigo cedeu do WS.
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();

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

            PrintStream printStream = new PrintStream(connection.getOutputStream());
            printStream.println(json);
            connection.connect();

            String result = new Scanner(connection.getInputStream()).next();
            return result;
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

E por fim, uma classe AsyncTask pra fazer o cadastro do usuário:

public class CadastrarAsync extends android.os.AsyncTask<Object, Void, Object> { {

}
    private final Context context;
    private ProgressDialog progress;

    public CadastrarAsync(Context context) {
        this.context = context;
    }

    @Override
    protected String doInBackground(Object... params) {

        UsuarioDAO dao = new UsuarioDAO(context);
        Usuario Usuario = dao.getUser(AccessToken.getCurrentAccessToken().getUserId());

        String json = new UsuarioJSON().cadastro(Usuario);
        WebClient client = new WebClient();
        String result = client.post(json);
        return result;
    }
    @Override
    protected void onPreExecute() {
        String waiting = "" + R.string.wait, receiving = "" +R.string.receiving;
        progress = ProgressDialog.show(context, waiting, receiving, true);
    }
}

Meu problema é:

  1. Não sei se o json está sendo enviado ao servidor hospedado (Nenhuma atualização é feita no banco de dados).
    1. Não sei se minhas classes estão feitas da forma correta.
    2. Se possível, poderiam me mostrar exemplos de como seria enviar e receber um json pra uma determinada URL?
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags webservices rest android ou faça a sua própria pergunta.