web-dev-qa-db-ja.com

WebViewのデータを投稿する方法android

Webviewにデータを投稿する必要があります。
いくつかのリンクから以下のコードを見つけました。

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

しかし、私のAndroidスタジオでは、EncodingUtilsは非推奨として表示されます
EncodingUtilsがデータをAndroid WebView?

以下のようにしてみてください...

 WebView webview = new WebView(this);
 setContentView(webview);
 String url = "http://www.example.com";
 String postData = "username=" + URLEncoder.encode(my_username, "UTF-8") + "&password=" + URLEncoder.encode(my_password, "UTF-8");
 webview.postUrl(url,postData.getBytes());
38
Priyank Patel

これは簡単な回避策です。

String html = "<!DOCTYPE html>" +
    "<html>" +
    "<body onload='document.frm1.submit()'>" +
    "<form action='http://www.yoursite.com/postreceiver' method='post' name='frm1'>" +
    "  <input type='hidden' name='foo' value='12345'><br>" +
    "  <input type='hidden' name='bar' value='23456'><br>" +
    "</form>" +
    "</body>" +
    "</html>";
webview.loadData(html, "text/html", "UTF-8");

私はこれが最良の方法ではないことを知っていますが、これはうまくいきます。

5
kmchmk

これを試してください:送信する前にパラメーター値をURLエンコードする必要があります。

String postData = "fileContents=" + URLEncoder.encode(fileCon, "UTF-8");
1
Rahul Khurana