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