|
||
|
|
|
|||||||
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Post en php con android
Buenas necesito resolver otra duda a ver si alguien la sabe.
Tengo un script en php que entre otras cosas devuelve los datos que le envio , de la siguiente forma, si entro con un navegador en la direccion: "http://www.pagina.com/script.php?img=imagen.jpg&res=M"; me muestra por pantalla el texto: "imagen.jpg M". Ahora necesito hacer lo mismo con android, hacer una petición con los parametros img y res y leer la respuesta que devuelva el php, el código que tengo escrito para hacer esto es este: public void enviarDatos(View v) { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://www.pagina.com/carpeta1/carpeta2/script.php"); try { List <NameValuePair> nameValuePairs = new ArrayList <NameValuePair> (2); nameValuePairs.add(new BasicNameValuePair("img", "imagen")); nameValuePairs.add(new BasicNameValuePair("res", "M")); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); InputStream is = response.getEntity().getContent(); BufferedInputStream bis = new BufferedInputStream(is); ByteArrayBuffer baf = new ByteArrayBuffer(20); int current = 0; while((current = bis.read()) != -1){ baf.append((byte)current); } /* Convert the Bytes read to a String. * text = new String(baf.toByteArray()); result.setText(text); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } pero me devuelve esto: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html><head><title>403 Forbidden</title></head><body><h1>Forbidden</h1><p>You don't have permission to access /carpeta1/carpeta2/script.phpon this server.</p><hr><address>Apache/2.2.22 (Ubuntu) Server at www.pagina.com Port 80</address></body></html> Parece un problema de permisos , pero por otra parte si puedo hacer lo que quiero con el navegador(firefox). Gracias por leerlo. |
|
|
|
#2
|
||||
|
||||
|
Me paso algo parecido cuando me inicie en el servicio web. Me daba errores de permiso o algo similar.
Investigando me di cuenta que el script php de la conexion al servicio web estaba mal (donde indicas el USER, PASSWORD, SERVER). El server lo tube que poner de otra manera en vez de la direccion normal. PD: Uso un dominio de 1&1 y ahi te explicaban como hacerlo para mi caso.
__________________
Visita mi blog: EL BAUL DE ANDROID
|
|
#3
|
||||
|
||||
|
Buenas rinxe , gracias por contestar. No se si te entiendo bien.
el script.php basicamente tiene esto <?php $img=$_GET[img]; $res=$_GET[res]; ... ?> No utilizo user ni password desde la app android para hacer el post, ni tampoco desde el firefox, por ejemplo, simplemente escribo la direccion: "http://www.pagina.com/carpeta1/carpeta2/script.php?img=imagen&res=M" y Enter. ¿Te refieres a que seguramente sea cambiar algo de aqui?? "httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); " Gracias de nuevo y Saludos. |
|
#4
|
||||
|
||||
|
La verdad es que no entiendo mucho de estos temas, te comentaba eso por si te podia servir de ayuda pero ya veo que vas por otro lado.
He estado mirando algun ejemplo y creo que quieres hacer esto: http://codigoprogramacion.com/cursos...l#.UXWFXEBdUuo
__________________
Visita mi blog: EL BAUL DE ANDROID
|
|
#5
|
||||
|
||||
|
Buenas me he dado cuenta que lo que tengo que hacer es un GET, y no un POST, porque el script PHP hace GET. De todas formas lo he cambiado y me sigue apareciendo el mismo error:
... <html><head><title>403 Forbidden</title></head><body><h1>Forbidden</h1><p>You don't have permission to access ... Concretando, si accedo a la direccion por medio de un navegador como el firefox lo hago correctamente y se muestra lo que quiero, por ejemplo accedo a http://www.pagina.web.com/carpeta1/carpeta2/script.php y se muestra lo que dice el script.php. Si accedo con un programita que he hecho asi rápido y simple en java tambien me accede y me muestra correctamente. Si accedo por medio de la aplicacion android me da el error : You don't have permission to access. Alguna idea??? |
|
#6
|
||||
|
||||
|
Pues no queda otra, tiene que ser algo de la configuracion. El server apache supongo que estara instalado en tu pc, por eso te deja acceder desde el navegador o desde la aplicacion java.
He estado mirando un poco por google y me e encontrado con varios post similares a este: http://www.lawebdelprogramador.com/f...on_this_s.html Lo poco que he leido del tema, comentaban que si has instalado phpmyadmin te crea como un cortafuegos y hay que configurar algo para dejar acceder a ese server desde otra makina que no sea tu pc. Haber si con algo de esto das con la clave para solucionar tu problema.
__________________
Visita mi blog: EL BAUL DE ANDROID
|
|
#7
|
||||
|
||||
|
no , el server es de la universidad, y he revisado tener acceso a las carpetas y los archivos, si no , no podria acceder normalmente con un navegador como el firefox o con la aplicacion en java. Bueno garcias por el interes e intentar aclararlo, voy a seguir intentando cosas, Saludos.
|
|
#8
|
||||
|
||||
|
Okk, un saludo y suerte !!
PD: ya ves que mas no puedo hacer,
__________________
Visita mi blog: EL BAUL DE ANDROID
|
|
#9
|
||||
|
||||
|
Hola, checa el servidor donde tienes el PHP, agarra la compu que este en otra red (que tenga Internet y trata de entrar al URL del archivo PHP, si te sale lo mismo significa que el servidor apache tiene problemas, puede ser:
a) Solo acepte direcciones locales (solo te deja entrar si desde la compu donde tienes instalado el servidor entrar) Si es esto tienes que configurarlo para que sea publico. b) SI esta publicado pero el Dominio o IP del servidor no es accesible desde afuera, en este caso es mas complicado, lo único que puedes hacer es migrar tu servidor a otra red donde puedas controlar esas cosas o conectar tu android a la MISMA red donde esta el servidor para que lo pueda ver. |
![]() |
Estás aquí
|
||||||
|
||||||