Javascript - 使用chrome.devtools.network.onRequestFinished时读取二进制数据

时间:2015-09-09 13:53:44

标签: javascript google-chrome google-chrome-extension google-chrome-devtools

所以我正在构建一个Chrome DevTools扩展程序,用于检查特定网站上的二进制流量。

网站上的请求是responseType = "blob"

现在,当我收到chrome.devtools.network.onRequestFinished请求,然后使用request.getContent()访问其内容时,我得到string作为回复,而不是blob

此字符串看起来像某种二进制字符串,但不确定它是如何编码的。我尝试将它转换为base64 string并进行了大量不同的转换(Utf-8到拉丁语,Utf-16到拉丁语,......)但没有给出正确的结果。

知道如何获得正确的结果吗?

更新

这是来自客户端和扩展程序的结果(Uint8Array)的比较。

客户端:
[170, 69, 224, 171, 51, 233, 216, 82, 197, 35, 170, 213, 145, 197, 218, 82, 72, 85, 33, 77, 81, 88, 93, 16, 97, 234, 253, 208, 203, 221, 44, 44]

扩展:
[65533, 69, 65533, 65533, 51, 65533, 65533, 82, 65533, 35, 65533, 81, 65533, 65533, 82, 72, 85, 33, 77, 81, 88, 93, 16, 97, 65533, 65533, 65533, 65533, 65533, 44, 44]

注意超过128的每个字节如何在扩展名中转换为65533字节(替换字符)?

现在我如何访问纯二进制数据?

1 个答案:

答案 0 :(得分:0)

const data = Uint8Array.from(atob(content), c => c.charCodeAt(0)) ;