0

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

我的 InputStream 在我的 ShouldInterceptRequest 中的 java 代码:

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

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

谢谢你的帮助!

4

1 回答 1

0

我发现的唯一解决方案是更改我的 JavaScript。Mime 类型没有影响。

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

于 2013-08-22T15:18:05.417 回答