当前位置: 首页 > 面试题库 >

如何在WebView中获取POST请求的JSON响应?

锺离旻
2023-03-14
问题内容

我有一个WebView包含表单(帖子)的html。单击某些提交按钮时,我会收到JSON响应。

如何获取此JSON?

如果我不截取请求,则json将显示在Web视图上,所以我想应该使用shouldInterceptRequest(我正在使用API​​
12),但是我不知道如何在其中获取json。

还是有更好的方法,例如拦截响应而不是请求?

mWebView.loadUrl(myURL);

isPageLoaded = false; // used because the url is the same for the response

mWebView.setWebViewClient(new WebViewClient() {
    @Override
    public WebResourceResponse shouldInterceptRequest (WebView view, String url) {

        if(isPageLoaded){
            // get the json
            return null;
        }
        else return super.shouldInterceptRequest(view, url);
    }

    public void onPageFinished(WebView view, String url) {
        isPageLoaded = true;
    }
});

谢谢


问题答案:

您应该重写的shouldOverrideUrlLoading方法WebViewClient

@Override
public boolean shouldOverrideUrlLoading (WebView view, String url) {

    if(flag) {

            URL aURL = new URL(url); 
            URLConnection conn = aURL.openConnection(); 
            conn.connect(); 
            InputStream is = conn.getInputStream(); 
            // read inputstream to get the json..
            ...
            ...
            return true;
    }

    return false
}

@override
public void onPageFinished (WebView view, String url) {
    if (url contains "form.html") {
        flag = true;
    }
}


 类似资料:
  • 我如何解析JSON请求之类的东西? 示例代码: 带有_名称的位置_为无

  • 我试图读取在POST请求的正文中传递的内容,或者使用REST保证库的请求规范或响应对象。我找不到任何方法可以返回传递的正文内容。有什么帮助吗? 我试图打印JSONBody通过测试()在PerformPOST操作()

  • 我尝试做的是从同一个站点发布数据并从它创建一个新的订单(当提交按钮被点击时)。我没有任何信息在我的请求。身体,我怀疑是在我的ejs出了问题,任何反馈是非常感谢的。 我的ejs文件: 和我的js文件:

  • 问题内容: 我正在尝试使用Flask构建一个简单的API,现在我想在其中读取一些POSTed JSON。我使用Postman Chrome扩展程序进行POST,而我发布的JSON就是。我尝试使用以下方法读取JSON: 在浏览器上,它可以正确返回我放入GET中的UUID,但是在控制台上,它只是打印出来(我希望它可以在其中打印出来。有人知道我如何从Flask方法中获取发布的JSON吗? 问题答案: 首

  • 问题内容: 如何从CherryPy中的POST请求接收JSON? 我去过此页面,尽管它在解释API,其参数及其作用方面做得很好。我似乎无法弄清楚如何使用它们将传入的JSON解析为一个对象。 这是我到目前为止的内容: 而且,这是我的jquery调用以发布帖子 问题答案: 工作示例: 链接到的文档介绍了3.2版中的几个CherryPy工具。该工具基本上可以更严格地完成上述操作,并使用3.2中的新主体处

  • 我正在做一个项目,在这个项目中我正在创作一本书。创建图书后,将生成唯一的bookId,响应如下所示: 我有一个GET请求,它基本上使用bookid-http://localhost:port/{bookId}获取书籍的详细信息。 每当我创建一本书时,我都会尝试得到上面的URL以便我的响应看起来像这样: 这样,如果用户单击URL,就会导航到GET请求http://localhost:port/{bo