2011-04-24 15 views

Respuesta

14

http://breaking-catch22.com/?p=12

public class AndroidApp extends Activity { 

    String URL = "http://the/url/here"; 
    String result = ""; 
    String deviceId = "xxxxx" ; 
    final String tag = "Your Logcat tag: "; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     final EditText txtSearch = (EditText)findViewById(R.id.txtSearch); 
     txtSearch.setOnClickListener(new EditText.OnClickListener(){ 
      public void onClick(View v){txtSearch.setText("");} 
     }); 

     final Button btnSearch = (Button)findViewById(R.id.btnSearch); 
     btnSearch.setOnClickListener(new Button.OnClickListener(){ 
      public void onClick(View v) { 
       String query = txtSearch.getText().toString(); 
       callWebService(query); 

      } 
     }); 

    } // end onCreate() 

    public void callWebService(String q){ 
     HttpClient httpclient = new DefaultHttpClient(); 
     HttpGet request = new HttpGet(URL + q); 
     request.addHeader("deviceId", deviceId); 
     ResponseHandler<string> handler = new BasicResponseHandler(); 
     try { 
      result = httpclient.execute(request, handler); 
     } catch (ClientProtocolException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     httpclient.getConnectionManager().shutdown(); 
     Log.i(tag, result); 
    } // end callWebService() 
} 
+0

Log.i (etiqueta, resultado); ¿Cuál es el significado de esta línea? – sandy

+1

Log.i está enviando un 'mensaje de información' a su computadora, por lo que puede ver el resultado fácilmente. –

+0

Si tengo que usar HTTPS, ¿qué cambios debo hacer antes? ¿O funcionará bien? – astuter

2

Básicamente depende de lo que necesita, pero asumiendo una simple solicitud POST con un cuerpo JSON se verá algo como esto (sugiero usar Apache HTTP Library).

HttpPost mRequest = new HttpPost(<your url>);  

DefaultHttpClient client = new DefaultHttpClient(); 
//In case you need cookies, you can store them with PersistenCookieStorage 
client.setCookieStore(Application.cookieStore); 

try { 
    HttpResponse response = client.execute(mRequest); 

    InputStream source = response.getEntity().getContent(); 
    Reader reader = new InputStreamReader(source); 

    //GSON is one of the best alternatives for JSON parsing 
    Gson gson = new Gson(); 

    User user = gson.fromJson(reader, User.class); 

    //At this point you can do whatever you need with your parsed object. 

} catch (IOException e) { 
    mRequest.abort(); 
} 

Por último, me animo a ejecutar este código en cualquier tipo de hilo de fondo (ejecutor, hilo, AsyncTask, etc)

Cuestiones relacionadas