8

有谁知道如何使用 post 方法在 webview 中传递值?

engine = (WebView) findViewById(R.id.web_engine);

engine.setWebViewClient(new WebViewClient() {

    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
    }

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        return super.shouldOverrideUrlLoading(view, url);
    }
});

engine.getSettings().setJavaScriptEnabled(true);
engine.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
engine.loadUrl(url+"?ref=api&uname="+id+"&pass="+pass);

这是我使用 get 方法发送数据的方式,我想使用 Post 方法。

4

4 回答 4

16

试试这个

String url = "http://www.example.com";
String postData = "username=my_username&password=my_password";
webview.postUrl(url,EncodingUtils.getBytes(postData, "BASE64"));
于 2012-11-02T08:20:48.653 回答
1

用于postUrlWebView.

于 2012-11-02T08:01:40.180 回答
1

使用 postUrl 方法来发布数据。更多细节关注这个

于 2012-11-08T07:15:13.690 回答
0

使用 Base64.encode 更好:

String url = "http://www.example.com";
String postData = "username=my_username&password=my_password";
webview.postUrl(url,Base64.encode(postData.getBytes(), Base64.DEFAULT));

在某些情况下效果更好:

String url = "http://www.example.com";
postData = "username="+URLEncoder.encode("my_username", "UTF-8")+"&password="+URLEncoder.encode("my_password", "UTF-8");
 webview.postUrl(url,postData.getBytes());
于 2017-04-06T17:42:10.727 回答