使用curl时,请求(nodeJs模块)发布获取400状态错误

时间:2019-07-01 21:35:01

标签: node.js request requestjs

我正在尝试使用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

0 个答案:

没有答案