puppeteer错误的request.postData()

时间:2018-03-28 15:37:03

标签: node.js puppeteer

当我尝试使用十六进制数据从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);
        }
    });
})

0 个答案:

没有答案