2011-07-11 16 views
5

he el siguiente código (simplificado por simplicidad), que lleva al usuario a la URL especificada:¿Intención de Android para PUBLICAR URL?

Button b = (Button) findViewById(R.id.button); 
    b.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
       Intent i = new Intent(Intent.ACTION_VIEW); 
       i.setData(Uri.parse("http://example.com/myform/?a=b&c=d&e=f")); 
       if (i.resolveActivity(getPackageManager()) != null) {      
          startActivity(i); 
       } 
     } 
    }); 

que funciona bien, pero es un poco fea porque los parámetros CGI se muestran en la barra de direcciones del androide navegador web (son varias claves de sesión feas, etc.). ¿Hay alguna manera de hacer lo mismo utilizando HTTP POST para que estén ocultos?

+1

Lo dudo, ya que la mayoría de las aplicaciones que pueden recibir tal intento no podrán hacer una publicación. –

+0

"Yes We Can!" ... pero con un truco. Salida esta respuesta: http://stackoverflow.com/questions/4080517/launch-default-browser-with-intent-and-post-parameters#9909613 – Pascal

Respuesta

3

No es posible en el navegador, pero sería posible si se ha utilizado un WebView:

byte[] post = EncodingUtils.getBytes("a=b&c=d&e=f", "BASE64"); 
webview.postUrl("http://example.com/myform/", post); 
+0

Gracias, voy a tratar eso. – Alistair

0

Al final, continué usando HTTP GET, pero establecer una cookie redirige el navegador a una URL 'limpia' sin los parámetros de la sesión.

+0

Puede aceptar su propia respuesta si lo desea. – Flimm

Cuestiones relacionadas