我正在尝试使用nodeJs request模块发布数据。 (也使用代理服务器)
但这不起作用。
为了进行快速测试,我尝试使用curl
。
curl -X POST http://MY_PROXY:9999/API_END_POINT -H 'Host:TARGET_HOST' -H 'Content-Type: application/x-www-form-urlencoded' -d 'SOME_DATA_1=abc&SOME_DATA_2=xyz' -kv
有效! 我的状态为200。
现在,我想在NodeJs请求模块上做同样的事情。
request(
{
method: 'POST',
uri: TARGET_HOST/API_END_POINT,
proxy: 'http://MY_PROXY:9999',
headers: {
'Host': TARGET_HOST,
'Content-Type': 'application/x-www-form-urlencoded',
},
strictSSL: false,
form: {
some_data_1: 'abc',
some_data_2: 'xyz',
}
},
(error, response, body) => {
console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
console.log('body', body);
if(error) {
console.error('error::::::::::', error);
throw error;
}
...
}
);
我得到400错误。
错误消息是
Error: tunneling socket could not be established, statusCode=400
at ClientRequest.onConnect (/node_modules/tunnel-agent/index.js:166:19)
我想我要求的格式错误,但不知道应该检查哪一部分。
如何使用NodeJs请求模块执行正确的http请求?
谢谢。
OS: Linux
node: v11.0.0
npm: 6.4.1
request: 2.88.0