¿Alguien puede resolver mi problema? Quiero enviar una solicitud HTTP en Android para acceder API REST (PHP) ..Cómo enviar una solicitud http en la aplicación Android para acceder a la API REST
Gracias
¿Alguien puede resolver mi problema? Quiero enviar una solicitud HTTP en Android para acceder API REST (PHP) ..Cómo enviar una solicitud http en la aplicación Android para acceder a la API REST
Gracias
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()
}
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)
ver la sección correspondiente. –
posible duplicado de [Hacer una solicitud HTTP con android] (http://stackoverflow.com/questions/3505930/make-an-http-request-with-android) –