Android意图如何POST URL?

5
我有以下代码(为简化起见)可将用户带到指定的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 );
                }
        }
    } );

这个功能很好用,但在Android浏览器的URL栏中会显示CGI参数(如各种丑陋的会话密钥等),看起来有点难看。有没有一种使用HTTP POST的方式可以隐藏它们呢?


1
我表示怀疑,因为大多数可以接收此类意图的应用程序将无法进行发布。 - Stefan H Singer
当然可以!但有一个技巧。请查看此答案: https://dev59.com/vlHTa4cB1Zd3GeqPSpTK - Pascal
2个回答

4

在浏览器中不可能实现,但是如果您使用 WebView 就可以实现:

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

0
最终,我仍然使用HTTP GET方法,但设置了一个cookie,然后将浏览器重定向到一个没有会话参数的“干净”URL。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接