2016-09-15 2 views
4

Мне нужно отправить данные в Webview.
я нашел от некоторых из ссылок ниже кода:Как опубликовать данные для WebView android

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")); 

Но в моем андроиде студии я вижу EncodingUtils как осуждается
Может кто-нибудь мне помочь, что является альтернативой EncodingUtils для отправки данных на Android WebView?

ответ

19

Попробуйте, как показано ниже ...

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()); 
+0

Спасибо за ключ кодировки url. –

0

попробуйте следующее: Вам необходимо URL-кодировать значение параметра перед его отправкой.

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

как сменить имя пользователя, пароль? –

+0

вы можете сделать что-то вроде «postvar = value & foo = bar». Дайте мне знать, если это сработает для вас. –

+0

u означает: String postdata = имя пользователя = + URLEncoder.encode (my_username, "UTF-8") и пароль = + URLEncoder.encode (my_password, "UTF-8"); webview.postUrl (url ", postdata); –

2

Это простое решение.

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"); 

Я знаю, что это не лучший метод, но это работает.

Смежные вопросы