如何在android中的webview上添加自定义正文和标题来发布请求?

时间:2018-01-12 13:34:55

标签: android webview header android-volley request-headers

我正在实现一个Android应用程序,我必须在webview中添加自定义正文和标题来发布请求,但我还没有得到如何做到这一点。我得到的解决方案是如何在webview中添加自定义标题以发布请求,但我还没有得到如何在webview中添加自定义正文以发布请求。下面是我的标题和正文参数以及网址。

接头:

Content-Type : application/x-www-form-urlencoded
Content-Length : String.valueOf(params.length())

身体参数:

                JSONObject jsonObjForReqBody = new JSONObject();
                jsonObjForReqBody.put("Signature", signature);
                jsonObjForReqBody.put("Token", token);
                jsonObjForReqBody.put("Timestamp", timestamp);
                jsonObjForReqBody.put("ServiceCardNumber", svcCardNo);
                jsonObjForReqBody.put("DriverFirstName", person_first_name);   

网址:

https://submittest.glassclaim.com/SelfService/Default.aspx?ClientTag=4E7B1611-E22A-4B38-9651-006CF6DFD71A  

使用这些参数,一些数据将以加载的形式预先填充。

请帮帮我。我浪费了两天但没有得到任何解决方案。

1 个答案:

答案 0 :(得分:0)

String url="https://submittest.glassclaim.com/SelfService/Default.aspx?ClientTag=4E7B1611-E22A-4B38-9651-006CF6DFD71A ";
Gson gson = new GsonBuilder().disableHtmlEscaping().create();

            JSONObject jsonObjForReqBody = new JSONObject();
            jsonObjForReqBody.put("Signature", signature);
            jsonObjForReqBody.put("Token", token);
            jsonObjForReqBody.put("Timestamp", timestamp);
            jsonObjForReqBody.put("ServiceCardNumber", svcCardNo);
            jsonObjForReqBody.put("DriverFirstName", person_first_name);

            String request = gson.toJson(formsDTO);
            webview.setWebChromeClient(new WebChromeClient());
            webview.loadUrl(url,getHeaders());    
  

定义这样的标题

private Map<String,String> getHeaders() {
            Map<String,String> headers = new HashMap<>();
            headers.put("Authorization","JWT " + loginInfoDTO.getToken());
            return headers;
        }

        private WebViewClient getWebViewClient()
        {

            return new WebViewClient()
            {

                @Override
                @TargetApi(Build.VERSION_CODES.LOLLIPOP)
                public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request)
                {
                    view.loadUrl(request.getUrl().toString(), getHeaders());
                    return true;
                }

                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url)
                {
                    view.loadUrl(url, getHeaders());
                    return true;
                }
            };
        }