la solicitud GET se hace con HttpGet:
public static InputStream getInputStreamFromUrl(String url) {
InputStream content = null;
try {
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(new HttpGet(url));
content = response.getEntity().getContent();
} catch (Exception e) {
Log.("[GET REQUEST]", "Network exception", e);
}
return content;
}
La solicitud POST se hace con HttpPost:
public void postData() {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("id", "12345"));
nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
personalmente resumen recomendaría probar Retrofit en siguiente manera
public interface YourUsersApi {
//You can use rx.java for sophisticated composition of requests
@GET("https://stackoverflow.com/users/{user}")
public Observable<SomeUserModel> fetchUser(@Path("user") String user);
//or you can just get your model if you use json api
@GET("https://stackoverflow.com/users/{user}")
public SomeUserModel fetchUser(@Path("user") String user);
//or if there are some special cases you can process your response manually
@GET("https://stackoverflow.com/users/{user}")
public Response fetchUser(@Path("user") String user);
}
¿Funciona? Para probar, puede configurar el encabezado 'User-Agent' y descargar una página que muestre un agente de usuario recuperado por el servidor (o cree su propia página PHP). Si el agente de usuario mostrado es el que usted configuró, entonces este método funciona. –
Para aquellos que deambulan sobre esto y piensan: "¿Bien, fue la manera correcta ?!", la respuesta es sí. Esto funciona bien. – PFranchise
¿Conoce el hecho de que [ya no debería usar 'HttpClient'] (http://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-apache-http- cliente); al menos no para proyectos de Android. – toKrause