[英]How to load POST request to a Webview with headers and body on Android
所以我有一個網址,一堆標題和一個包含json格式的幾個值的正文,我需要加載到Webview。 以下代碼似乎不起作用。
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)on 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.