Tengo una cadena que ya está en el formato URLEncoded Form adecuado y me gustaría enviarla a través de una solicitud POST en Android a un servidor PHP. Sé que el método para enviar formularios con codificación URL en Android usa el UrlEncodedFormEntity
y sé how to use it. El problema con eso es que los datos entran en la función ya codificada en URL y unidos por ampersands, por lo que usar UrlEncodedFormEntity
implicaría mucho trabajo adicional para convertirlo en List
de NameValuePairs
y prefiero no hacerlo.En Android, realice una solicitud POST con datos de formularios codificados en URL sin utilizar UrlEncodedFormEntity
Entonces, ¿cómo hago una solicitud POST adecuada para enviar esta cadena como el cuerpo del contenido?
Ya he intentado usar StringEntity
, pero el servidor PHP no obtuvo ninguno de los datos (objeto $_POST
vacío).
estoy probando contra http://test.lifewanted.com/echo.json.php, que simplemente es
<?php echo json_encode($_REQUEST);
Aquí es un ejemplo de los datos ya codificados:
partnerUserID = correo electrónico% 40example.com & partnerUserSecret = mypassword & comando = Autentique
buena respuesta. en Gingerbread y más tarde, HttpURLConnection es el camino a seguir. considere que Apache HttpClient está en desuso. –
Me acabo de dar cuenta de que nunca acepté esto como la respuesta. Esto funcionó para mí genial. ¡Gracias! –
Dos cosas: InputStreamReader, de acuerdo con los documentos de Android (http://developer.android.com/reference/java/io/InputStreamReader.html) ya está en el búfer, por lo que no es necesario BufferedReader. Y, también de acuerdo con los documentos de Android, al final de su uso, debe (o más bien debe) llamar a disconnect() en HttpURLConnection para liberar recursos. – Gonan