所以我正在构建一个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字节(替换字符)?
现在我如何访问纯二进制数据?
答案 0 :(得分:0)
const data = Uint8Array.from(atob(content), c => c.charCodeAt(0)) ;