Запрос (модуль nodeJs) сообщение получает 400 статус ошибки при использовании curl работает - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь опубликовать данные с помощью модуля 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 статус.

Теперь я хочу сделать то же самое, но с модулем запроса NodeJ.

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)

Я предполагаю, что запрашиваю в неправильном формате, но не знаю, какую часть я должен проверить.

Как сделать правильный http-запрос с помощью модуля запросов NodeJs?

Спасибо.

OS: Linux
node: v11.0.0
npm: 6.4.1
request: 2.88.0
...