首页 > 解决方案 > WebView 的 postUrl 方法仅适用于显式字符串

问题描述

我已经可以说这是一个愚蠢的问题,但我试图登录到一个网页postUrl(),当我明确地写出这样的帖子数据时:

String postData = "username=johndoe&password=mypassword";
myWebview.postUrl("https://moodle.domain.com/login/index.php", postData.getBytes());

它有效,但如果我使用变量构造 postData:

String postData = "username="+user+"&password="+pass;
myWebview.postUrl("https://moodle.domain.com/login/index.php", postData.getBytes());

它不起作用。错误的凭据。我已经验证两个字符串具有完全相同的值,并且我尝试使用 UTF-8。

我只是不明白,这没有任何意义。

标签: javaandroidstringloginwebview

解决方案


试试下面

String postData = "username=" + URLEncoder.encode(my_username, "UTF-8") + "&password=" + URLEncoder.encode(my_password, "UTF-8");
 webview.postUrl("https://moodle.domain.com/login/index.php",postData.getBytes());

推荐阅读