Запрос Nodejs ведет себя иначе, чем Postman и Curl - PullRequest
0 голосов
/ 02 ноября 2018

Я уже давно об этом и не могу понять ... Я пытаюсь отправить запрос POST на устройство (какое устройство не имеет значения, я думаю), чтобы изменить его IP-адрес. Обычно настройка выполняется через браузер, поэтому я пытаюсь эмулировать этот запрос. Кажется, это работает нормально, когда я делаю запрос с почтальоном или Curl, но не с модулем запроса из Node.js. Все запросы возвращают код состояния 200 OK, но последний, похоже, не принят. Вот запрос, который я выполняю с помощью Почтальона:

POST /configuration_tab/ajax_comb_table_save/network_config/network_config_schema HTTP/1.1
Host: 192.168.1.250
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Cookie: PHPSESSID=mg37okvhkr1eqv1okq99i98i62
Cache-Control: no-cache
Postman-Token: 234ece69-c3f8-2d29-34a5-c40f8e64f708

form=Hostname%3D%26IPv4mode%3Dstatic%26IPv4address%3D192.168.1.250%26
IPv4netmask%3D255.255.255.0%26IPv4gateway%3D0.0.0.0%26DNSmode%3Dmanual%26
IPv4DNS1%3D%26IPv4DNS2%3D%26IpAddrCnflctDetectEnbl%3Denable%26NtpServer%3D%26
SyslogServer%3D%26SyslogPort%3D514%26SshServerEnable%3Denable

Вот что я отправил через curl:

curl -X POST "http://192.168.1.250/configuration_tab/ajax_comb_table_save/network_config/network_config_schema" 
-H "Content-Type:application/x-www-form-urlencoded; charset=UTF-8" 
-H "Cookie:PHPSESSID=mg37okvhkr1eqv1okq99i98i62" 
-d "form=Hostname%3D%26IPv4mode%3Dstatic%26IPv4address%3D192.168.1.250%26IPv4netmask%3D255.255.255.0%26IPv4gateway%3D0.0.0.0%26DNSmode%3Dmanual%26IPv4DNS1%3D%26IPv4DNS2%3D%26IpAddrCnflctDetectEnbl%3Denable%26NtpServer%3D%26SyslogServer%3D%26SyslogPort%3D514%26SshServerEnable%3Denable"

Опять же, они оба работают нормально. Вот код, который я использовал, чтобы попробовать то же самое через Node:

let body = "form=Hostname%3D%26IPv4mode%3Dstatic%26IPv4address%3D192.168.1.250%26IPv4netmask%3D255.255.255.0%26IPv4gateway%3D0.0.0.0%26DNSmode%3Dmanual%26IPv4DNS1%3D%26IPv4DNS2%3D%26IpAddrCnflctDetectEnbl%3Denable%26NtpServer%3D%26SyslogServer%3D%26SyslogPort%3D514%26SshServerEnable%3Denable"

request({
    url: "http://192.168.1.250/configuration_tab/ajax_comb_table_save/network_config/network_config_schema",
    method: "POST",
    headers: {
        "Cookie": "PHPSESSID=mg37okvhkr1eqv1okq99i98i62",
        "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
    },
    body: body
}, (err, resp) => {
    // Do whatever...
});

У кого-нибудь есть идеи, что может отличаться или что-то, чего мне не хватает? Любая помощь будет оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...