Vip*_*hah 14 post android webview http-headers
我可以看到Android文档中有两种不同的方法来发布数据并添加标题.
For setting Headers
public void loadUrl (String url, Map<String, String> additionalHttpHeaders)
For setting Post Data
public void postUrl (String url, byte[] postData)
Run Code Online (Sandbox Code Playgroud)
但我真正需要的是将数据与标题一起发布.(意味着我想要一个同时完成任务的单一方法?)
有人可以帮我解决这个问题.
谢谢 :)
我最近遇到了同样的问题,几个小时后就解决了。
这是我的代码段,并带有一些注释:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(getPostUrl());
// example of adding extra header "Referer"
httpPost.addHeader("Referer", getReferer());
ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
for (PostItem postItem : getPostItems()) {
// key value post pairs
// add post parameters in array list
postParameters.add(new BasicNameValuePair(postItem.getKey(), postItem.getValue()));
}
HttpResponse response = null;
try {
mWebView.getSettings().setJavaScriptEnabled(true);
httpPost.setEntity(new UrlEncodedFormEntity(postParameters));
response = httpclient.execute(httpPost);
BasicResponseHandler responseHandler = new BasicResponseHandler();
String htmlString = responseHandler.handleResponse(response);
// important!! is to fill base url
mWebView.loadDataWithBaseURL(getPostUrl(), htmlString, "text/html", "utf-8", null);
} catch (Exception e){
// handle errors
}
Run Code Online (Sandbox Code Playgroud)
小智 0
该框架似乎没有同时提供这些功能。
查看WebViewCore的源代码(https://android.googlesource.com/platform/frameworks/base/+/eclair-release%5E2/core/java/android/webkit/WebViewCore.java,第889行),附加标头仅在调用中处理loadUrl
,而不会在postUrl
.
归档时间: |
|
查看次数: |
10982 次 |
最近记录: |