在android中将数据发布到webview

时间:2012-11-02 07:59:28

标签: android

有没有人知道如何使用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 个答案:

答案 0 :(得分:16)

试试这个

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

答案 1 :(得分:1)

使用postUrlWebView中使用POST。

答案 2 :(得分:1)

对post dat使用postUrl方法。更多细节Follow This

答案 3 :(得分: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());