He buscado en todas partes pero no pude encontrar mi respuesta, ¿hay alguna manera de hacer una solicitud HTTP simple? Quiero solicitar una página / script PHP en uno de mis sitios web, pero no quiero mostrar la página web.
Si es posible, incluso quiero hacerlo en segundo plano (en un BroadcastReceiver)
android
httpwebrequest
androidhttpclient
Mats Hofman
fuente
fuente
Respuestas:
ACTUALIZAR
Esta es una respuesta muy antigua. Definitivamente ya no recomendaré el cliente de Apache. En su lugar use cualquiera:
Respuesta original
En primer lugar, solicite un permiso para acceder a la red, agregue lo siguiente a su manifiesto:
Entonces, la forma más fácil es usar el cliente http Apache incluido con Android:
Si desea que se ejecute en un hilo separado, le recomiendo extender AsyncTask:
Luego puede hacer una solicitud:
fuente
a menos que tenga una razón explícita para elegir el HttpClient de Apache, debería preferir java.net.URLConnection. puedes encontrar muchos ejemplos de cómo usarlo en la web.
También hemos mejorado la documentación de Android desde su publicación original: http://developer.android.com/reference/java/net/HttpURLConnection.html
y hemos hablado sobre las compensaciones en el blog oficial: http://android-developers.blogspot.com/2011/09/androids-http-clients.html
fuente
Nota: El cliente HTTP Apache incluido con Android ahora está en desuso a favor de HttpURLConnection . Consulte el Blog de desarrolladores de Android para obtener más detalles.
Agregue
<uses-permission android:name="android.permission.INTERNET" />
a su manifiesto.Luego recuperarías una página web de esta manera:
También sugiero ejecutarlo en un hilo separado:
Consulte la documentación para obtener más información sobre el manejo de respuestas y las solicitudes POST.
fuente
readStream
Ni siquiera está definido.La forma más simple es usar la lib de Android llamada Volley
Puede enviar una solicitud http / https tan simple como esto:
En este caso, no es necesario que consideres "ejecutar en segundo plano" o "usar caché", ya que Volley ya ha hecho todo esto.
fuente
Saludos
fuente
Con un hilo:
fuente
Hice esto para un servicio web para solicitar URL, usando una lib Gson:
Cliente:
fuente
Mira esta nueva biblioteca increíble que está disponible a través de gradle :)
build.gradle:
compile 'com.apptakk.http_request:http-request:0.1.2'
Uso:
https://github.com/erf/http-request
fuente
Use Volley como se sugirió anteriormente. Agregue lo siguiente en build.gradle (Módulo: aplicación)
Agregue lo siguiente en AndroidManifest.xml:
Y agregue el siguiente código de actividad:
Reemplaza al cliente http y es muy simple.
fuente
Este es el nuevo código para la solicitud HTTP Get / POST en Android.
HTTPClient
está depurada y puede no estar disponible como estaba en mi caso.Primero agregue las dos dependencias en build.gradle:
Luego escriba este código
ASyncTask
en eldoBackground
método.fuente
Para mí, la forma más fácil es usar una biblioteca llamada Retrofit2
Solo necesitamos crear una interfaz que contenga nuestro método de solicitud, parámetros, y también podemos hacer un encabezado personalizado para cada solicitud:
Y lo mejor es que podemos hacerlo de forma asincrónica fácilmente utilizando el método en cola
fuente
Como ninguna de las respuestas describe una forma de realizar solicitudes con OkHttp , que es un cliente http muy popular actualmente para Android y Java en general, voy a proporcionar un ejemplo simple:
La clara ventaja de esta biblioteca es que nos abstrae de algunos detalles de bajo nivel, proporcionando formas más amigables y seguras de interactuar con ellos. La sintaxis también se simplifica y permite escribir código agradable.
fuente