当我尝试使用十六进制数据从xhr请求中获取请求拦截中的postData时,我收到了错误的结果。我发送4个字节,并希望收到4个字节。在php中我通过file_get_contents(“php:// input”)正确获得这4个字节,但在puppeteer中我收到了8个字节。任何人都知道如何获取原始请求发布数据?
我在服务器上有html页面。用那段代码:
<script>
var bytesToSend = [0xac, 0xed, 0x00, 0x05];
bytesArray = new Uint8Array(bytesToSend);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://testsite.loc/tests/testserialized.php', false);
xhr.setRequestHeader('Content-Type', 'application/octet-stream');
xhr.send(bytesArray);
</script>
“testsite.loc / tests / testserialized.php” - 用于检查发布数据的php页面
和node.js puppeteer脚本。我用xhr请求在puppeteer中打开我的html页面并拦截请求并尝试获取发布数据 这是node.js
中代码的一部分page.on('request',async request =>{
let text = request.postData();
const fs = require('fs');
let filename= __dirname + '/../tests/testserialize.txt';
fs.writeFile(filename, text, function(err) {
if(err) {
return console.log(err);
}
});
})