我正在尝试让我的服务器接受从我的电子应用程序中发送的错误报告和功能请求。在主线程上使用net.requests
或https
模块,GET请求工作得很好,但POST似乎不包括数据,无论我尝试什么。我成功地得到了200响应,还有一个服务器端的错误,说发送的键没有找到,用Postman测试的时候服务器脚本是可以工作的,所以我认为问题不在这里。
我的代码:
const payload = JSON.stringify({report: "1234"});
const request = net.request({
method: 'POST',
protocol: 'https:',
hostname: 'site.tld',
path: '/backend-script.php',
redirect: 'follow'
});
request.on('response', (response) => {
console.log(`STATUS: ${response.statusCode}`);
console.log(`HEADERS: ${JSON.stringify(response.headers)}`);
response.on('data', (chunk) => {
console.log(`BODY: ${chunk}`)
});
});
request.setHeader('Content-Type', 'application/json');
request.write(payload, 'utf-8');
request.end();
使用net.requests
模块GET和POST请求都会在控制台中显示以下消息:
Request is Finished
Last Transaction has occurred
[91902:0301/111653.091508:ERROR:trust_store_mac.cc(838)] Error parsing certificate:
ERROR: Failed parsing extensions
但是考虑到https
根本没有抱怨,我也很想排除这一原因。
我试过在服务器端记录所有传入的POST数据,但从Electron发送的任何数据都不包括任何数据,而Postman则按预期工作。
任何想法都是非常受欢迎的。
1条答案
按热度按时间qyuhtwio1#
问题是我用
Content-Type: application/json
发送请求,然后尝试从PHP的$_POST
数组中读取它。使用不同的内容类型+格式(即:Content-Type: application/x-www-form-urlencoded
和report=my_json_string
),或者使用$data = json_decode(file_get_contents('php://input'))->report;
在PHP中阅读JSON,都可以按预期工作。TIL。