Как загрузить POST-запрос в Webview с заголовками и телом на Android - PullRequest
0 голосов
/ 09 июня 2019

Итак, у меня есть url, несколько заголовков и тело, содержащее несколько значений в формате 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 Ответ

0 голосов
/ 10 июня 2019

Я думаю, что, возможно, вам следует очистить каждую часть потока,

1) На onCreateView: - объявить веб-просмотр: ...

    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) Затем вы используетеМодифицировать запрос на публикацию, чтобы получить данные....

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...