Atu*_*yal 10 post android webview http-headers android-webview
我需要将数据发布到服务器(带有"referer"头字段)并在Webview中加载响应.
现在,有不同的方法(来自Android WebView)来做它的一部分,比如:
void loadUrl(String url, Map<String, String> additionalHttpHeaders)
Run Code Online (Sandbox Code Playgroud)
使用指定的其他HTTP标头加载给定的URL.
void loadData(String data, String mimeType, String encoding)
Run Code Online (Sandbox Code Playgroud)
使用"数据"方案URL将给定数据加载到此WebView中.
void postUrl(String url, byte[] postData)
Run Code Online (Sandbox Code Playgroud)
使用"POST"方法将带有postData的URL加载到此WebView中.
loadUrl()允许发送HttpHeaders但不允许发送post数据,其他方法似乎不允许发送HttpHeaders.我错过了什么或我正在尝试的是不可能的?
HttpPost您可以像这样手动执行:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.yoursite.com/postreceiver");
// generating your data (AKA parameters)
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("ParameterName", "ParameterValue"));
// ...
// adding your headers
httppost.setHeader("HeaderName", "HeaderValue");
// ...
// adding your data
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
Run Code Online (Sandbox Code Playgroud)
获取response为String:
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
StringBuilder builder = new StringBuilder();
for (String line = null; (line = reader.readLine()) != null;) {
builder.append(line).append("\n");
}
String html = builder.toString();
Run Code Online (Sandbox Code Playgroud)
现在您可以使用以下命令将其html放入:yourWebViewloadData()
yourWebView.loadData(html ,"text/html", "UTF-8");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3612 次 |
| 最近记录: |