作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我有一个 url、一堆 header 和一个正文,其中包含我需要加载到 Web View 的几个 json 格式的值。以下代码似乎不起作用。
public void createWebview(){
WebView webView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.setWebViewClient(new MyWebViewClient());
String data = '{
"data1" : "data1",
"data2" : "data2",
"data3" : "data3"
}';
try {
webView.postUrl("https://www.example.com",data.getBytes("UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
private class MyWebViewClient extends WebViewClient
{
@Override
public WebResourceResponse shouldInterceptRequest (WebView view, WebResourceRequest request)
{
request.getRequestHeaders().put("header1", "header1");
request.getRequestHeaders().put("header2", "header2");
request.getRequestHeaders().put("header3", "header3");
return super.shouldInterceptRequest(view,request);
}
}
非常感谢任何帮助。谢谢。
最佳答案
我认为也许你应该弄清楚流程的每个部分,
1) 在 onCreateView 上:- 声明 WebView :...
WebView webView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.setWebViewClient(new MyWebViewClient());
// Maybe you want to show Please wait Dialog to let user wait
inflateUI();
...2)然后你使用Retrofit请求一个Post来获取数据。...
void inflateUI() {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {.. use Retrofit to get Data by Post }
}
}
....3)然后在Webview中更新数据。
改造:https://medium.com/@prakash_pun/retrofit-a-simple-android-tutorial-48437e4e5a23
关于java - 如何在 Android 上将 POST 请求加载到带有 headers 和 body 的 Webview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56516756/
我是一名优秀的程序员,十分优秀!