node.js - 使用带有 JSON 有效负载的 puppeteer 发出 POST 请求
问题描述
我正在尝试使用 puppeteer 发出 POST 请求并在请求中发送 JSON 对象,但是,我遇到了超时...如果我尝试发送至少得到回复的正常编码表单数据来自无效请求的服务器......这是代码的相关部分
await page.setRequestInterception(true);
const request = {"mac": macAddress, "cmd": "block"};
page.on('request', interceptedRequest => {
var data = {
'method': 'POST',
'postData': request
};
interceptedRequest.continue(data);
});
const response = await page.goto(configuration.commandUrl);
let responseBody = await response.text();
我正在使用相同的代码发出 GET 请求(没有有效负载)及其工作
解决方案
postData
需要编码为表单数据(格式key1=value1&key2=value2
)。
您可以自己创建字符串或使用内置模块querystring:
const querystring = require('querystring');
// ...
var data = {
'method': 'POST',
'postData': querystring.stringify(request)
};
如果您需要提交 JSON 数据:
'postData': JSON.stringify(request)
推荐阅读
- azure-data-lake - 在 Azure Data Lake Store 上获取一些没有任何扩展名的额外文件
- angular5 - 当我刷新页面时 cookie 过期我没有看到任何数据
- java - Maven build/pom.xml 中缺少工件错误
- r - 通过绘制值和颜色创建颜色条
- c# - Web api 中 Token 中的额外声明
- php - 如何在php中用数组()替换字符串
- php - 如何在文件上传控件+ jquery上上传文件夹名称
- kubernetes - Kubernetes 中的自定义负载均衡
- javascript - Angular中的多父组织结构图
- css - 如何在 Div 内排列此文本和按钮?