Enviando Post para WebService RestFul

4 respostas
W

Boa tarde, tenho um WS Java em RestFul, estou tentando enviar uma requisição Post do Android para o WS, porém não estou conseguindo.
Meu objetivo é mandar um objeto serializado para o WS e deserializa-lo do outro lado.

O método get já esta pronto, estou requisitando pelo android e recebendo um objeto serializado.

Alguem teria um exemplo de como posso implementar tanto o método no servidor quanto no cliente (Android)??

4 Respostas

R

Antes de tudo você tem que dizer qual framework você está utilizando no server side. Já no android você pode utilizar o gson para fazer a serialização e enviar o o seu json utilizando o http client padrão do java , ou o apache httpclient.

W

No server uso como container o Apache e no android utilizo para deserializar o objeto o GSON da google, o problema é enviar o POST para o server, como devo serializar? como envio?

Obrigado pela atenção.

R

Olha aqui nesse link: http://stackoverflow.com/questions/3027066/how-to-send-a-json-object-over-request-with-android

W

Boa noite, consegui serializar o objeto com a API GSON da Google e enviar para o WS via HTTPPOST.
Abaixo segue o código:

HashMap<String,Object> hm = new HashMap<String,Object>();

Gson ser = new Gson();
		   List<Cliente> lista = new ArrayList<Cliente>();
		   lista.add(cliente);
		
		   
		   hm.put("ClienteGravar",ser.toJson(lista));
		   
		   
		   HttpClient client = new DefaultHttpClient();
           HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); //Timeout Limit
           HttpResponse resp;
           JSONObject json = new JSONObject();

           try {
               HttpPost post = new HttpPost(url);
               StringEntity se = new StringEntity(hm.toString());  
               se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
               post.setEntity(se);
               resp = client.execute(post);

               if(resp!=null){
                   InputStream in = resp.getEntity().getContent(); //Get the data in the entity
               }

           } catch(Exception e) {
               e.printStackTrace();
           }

Agora vou deserializar no lado do servidor.

Muito obrigado pela dica.

Até mais.

Criado 7 de abril de 2013
Ultima resposta 9 de abr. de 2013
Respostas 4
Participantes 2