【问题标题】:Post data to webview in android在android中将数据发布到webview
【发布时间】:2012-10-22 21:14:26
【问题描述】:

有谁知道如何使用 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方法。

【问题讨论】:

  • 你要调用webservice吗?

标签: android


【解决方案1】:

试试这个

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

【讨论】:

【解决方案2】:

使用postUrlWebView 中使用POST。

【讨论】:

    【解决方案3】:

    使用 postUrl 方法来发布数据。更多详情Follow This.

    【讨论】:

      【解决方案4】:

      使用 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());
      

      【讨论】:

        猜你喜欢
        • 2013-10-16
        • 1970-01-01
        • 2012-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多