Я пытаюсь сделать что-то довольно простое, но я не нашел хорошей документации по этому вопросу. У меня есть webView, и мне нужно загрузить в него страницу, требующую данных POST. Похоже на простой процесс, но я не могу найти способ отобразить результат в веб-представлении.
Процесс должен быть простым:
запрос (с данными POST) -> веб-сервер -> ответ HTML -> WebView.
Я могу отправить данные, используя DefaultHttpClient, но это не может быть отображено в WebView.
Есть предложения?
Большое спасибо
Решение
private static final String URL_STRING = "http://www.yoursite.com/postreceiver";
public void postData() throws IOException, ClientProtocolException {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("foo", "12345"));
nameValuePairs.add(new BasicNameValuePair("bar", "23456"));
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(URL_STRING);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
String data = new BasicResponseHandler().handleResponse(response);
mWebView.loadData(data, "text/html", "utf-8");
}
Попробуйте следующее:
private static final String URL_STRING = "http://www.yoursite.com/postreceiver";
public void postData() throws IOException, ClientProtocolException {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("foo", "12345"));
nameValuePairs.add(new BasicNameValuePair("bar", "23456"));
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(URL_STRING);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
}
Я бы порекомендовал сделать это как часть AsyncTask и последующее обновление WebView
Если вы используете WebView с самого начала, может ли он работать?
Webview с html / js, который выполняет POST и, естественно, отображает результат.