【问题标题】:Send a JSON object through ShouldInterceptRequest通过 ShouldInterceptRequest 发送 JSON 对象
【发布时间】:2013-08-22 23:18:05
【问题描述】:

我正在使用 android 函数 ShouldInterceptRequest 来拦截我的 webview 的获取请求。但是我需要在拦截请求时发送一​​些数据(一个 JSON 对象)。我知道 android 函数必须返回一个 WebResourceResponse 对象,其中包含 mimetype、编码和包含我要发送的数据的流。我尝试了很多解决方案,但每次我寻找在 Javascript 中接收到的数据类型时,它总是一个字符串,我绝对需要直接一个 JSON 对象(不想做 JSON 解析)。

ShouldInterceptRequest 中 InputStream 的 java 代码:

stream = new ByteArrayInputStream(jsObject.toString().getBytes("UTF-8"));
return new WebResourceResponse("application/json; charset=UTF-8", null, stream);

那么,有没有办法将 JSON 对象转换为流(InputStream 或其他)以便直接接收 JSON 对象而不是字符串?

感谢您的帮助!

【问题讨论】:

    标签: javascript android webview httprequest


    【解决方案1】:

    我找到的唯一解决方案是更改我的 JavaScript。 Mime 类型无效。

    我使用的是 JQuery.ajax() 方法 (http://api.jquery.com/jQuery.ajax/),在此方法的配置中将 dataType 设置为 JSON 对我有效。我意识到这是间接执行 JSON.parse ,但它似乎仍然在以前自动检测类型的浏览器中工作,因此无需捕获解析失败,因为它已经是一个对象。

    【讨论】:

      猜你喜欢
      • 2014-10-05
      • 1970-01-01
      • 2016-06-22
      • 2014-12-04
      • 2014-05-20
      • 2011-10-02
      • 1970-01-01
      • 1970-01-01
      • 2013-02-27
      相关资源
      最近更新 更多