HTTP POST en Android
Quiero hacer un simple HTTPRequest a un script php y he tratado de hacer la más básica de las aplicaciones para obtener la funcionalidad de trabajo. Quiero probar que mi aplicación está enviando los datos que lo alimentan por lo que he hecho la aplicación android enviar a un servidor y que el servidor se supone que me envíe los datos que he puesto en la aplicación. El código para la función "postData" es enviar datos de android al servidor y el código para "default.php" es el archivo php que recibe en un servidor web que luego reenvía los datos a mi dirección de correo electrónico (no se da). Aquí está el código
public void postData() { // Create a new HttpClient and Post Header HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://somewhere.net/default.php"); try { // Add your data List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); nameValuePairs.add(new BasicNameValuePair("thename", "Steve")); nameValuePairs.add(new BasicNameValuePair("theage", "24")); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); // Execute HTTP Post Request //HttpResponse response = httpclient.execute(httppost); // Execute HTTP Post Request ResponseHandler<String> responseHandler=new BasicResponseHandler(); String responseBody = httpclient.execute(httppost, responseHandler); //Just display the response back displayToastMessage(responseBody); } catch (ClientProtocolException e) { // TODO Auto-generated catch block } catch (IOException e) { // TODO Auto-generated catch block } }
así como para "default.php"
- No se pueden obtener parámetros de PHP cuando se utiliza Volley con JsonObjectRequest
- Lado del servidor Routeboxer
- Cómo leer datos fragmentados de archivo de archivo Gap de teléfono en Android
- Obtener imágenes y metadatos desde el servidor PHP a android
- Recibiendo la respuesta del eco del HTTP POST de un archivo de PHP (enviar los POSTS funciona muy bien, es el recibir que no puedo imaginar)
<?php $thename=$_GET["thename"]; $theage=$_GET["theage"]; $to = "[email protected]"; $subject = "Android"; $body = "Hi,\n\nHow are you," . $thename . "?\n\nAt " . $theage . " you are getting old."; if (mail($to, $subject, $body)) { echo("<p>Message successfully sent!</p>"); } else { echo("<p>Message delivery failed...</p>"); } ?>
Aquí están los enlaces al código en pastebin: postData () y default.php
Recibo un correo electrónico sin embargo los datos enviados "thename" y "theage" parecen estar vacíos. El correo electrónico exacto recibido es "Hola, ¿Cómo estás,? En que se está haciendo viejo." que me indica que el servidor está enviando thename y theage como vacío. ¿Alguno de ustedes ha intentado esto antes? ¿Qué estoy haciendo incorrectamente? Muchas gracias por tomar el tiempo para leer mi código y si es posible responder a mis preguntas.
EDIT: Muy idiota de mí -> el "GETS" necesidad de cambiar a "POST". Dejándolo aquí para fines de archivo 🙂
- Android Chat Para sesión privada para usuarios (Development Workflow)
- PHP - RegEx Números de teléfono con o sin código de país
- Cómo crear API de sitio web
- Envío de datos de Sever a Android Device
- ¿Cómo puedo llamar correctamente a mi PHP webservice usando ksoap2-android?
- Que cliente es mejor HttpURLConnection o HttpClient en android?
- No puede conectarse al servidor de Google Cloud Connection
- Cómo enviar una notificación desde el servidor PHP a la aplicación Android
Está utilizando $_GET
lugar de $_POST
para obtener los valores de los datos publicados. Usted quiere
<?php $thename=$_POST["thename"]; $theage=$_POST["theage"];
está enviando una solicitud POST pero su script php usa variables GET
tratar
$thename=$_POST["thename"]; $theage=$_POST["theage"];
El método utilizado en Android y PHP debe ser el mismo, GET
o POST
.
En este caso puede cambiar el PHP a esto –
$thename = $_POST["thename"]; $theage = $_POST["theage"];
O el chang ethe Android lado a esto –
HttpGet httppost = new HttpGet("http://somewhere.net/default.php");
- SharedPreferences strage. getSharedPreferences no funciona
- cuadro de diálogo de progreso personalizado en android?