#node.js #request
Вопрос:
Я использую модуль запроса для отправки запроса http post на сервер, который отвечает http 302 с URL-адресом перенаправления местоположения, «странно» закодированным:
'httpsamp;#58;//xxx.xxx.comamp;#63;srcext=valueamp;amp;erl=rrf
Когда я выполняю тот же запрос в chrome, chrome показывает мне URL-адрес перенаправления местоположения как:
"https://xxx.xxx.com?srcext=valueamp;erl=rrf"
Curl дает мне тот же «ответ», что и модуль запроса:
'httpsamp;#58;//xxx.xxx.comamp;#63;srcext=valueamp;amp;erl=rrf
Параметры запроса «followRedirect/followAllRedirects» не удается перейти по ссылке, опция curl-L не удается перейти по ссылке. Никаких проблем в chrome
Я знаю, что могу применить «вручную» метод для «правильного» декодирования URL-адреса, но это сложно, так как некоторые включенные параметры должны оставаться закодированными.
Есть ли в curl или запросе опция, которую я пропускаю, чтобы напрямую «декодировать» URL-адрес и сделать так, чтобы опция перенаправления работала ?
Заранее спасибо
=========== РЕДАКТИРОВАТЬ = = = = = = = для запроса, который я использую
request({ method: "POST", url: "https://balbalab.com", headers: { 'Cookie': "XXXXX", 'Accept-Encoding': 'gzip, deflate, fr', 'Accept-Language': 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7', 'Upgrade-Insecure-Requests': '1', 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/55.0.2883.87 Chrome/55.0.2883.87 Safari/537.36', 'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'text/html,application/xhtml xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', 'Cache-Control': 'no-cache', 'Connection': 'keep-alive', "Pragma": "no-cache", "Content-Type": "application/x-www-form-urlencoded" }, gzip: true, form: formFields, followRedirect: true, followAllRedirects: true }
для завивки я использую:
curl -X POST "https://url1.url1.com" -H 'Accept-Encoding: gzip, deflate, fr' -H 'Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/55.0.2883.87 Chrome/55.0.2883.87 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Accept: text/html,application/xhtml xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' -H 'Cache-Control: no-cache' -H 'Connection: keep-alive' -H "Pragma: no-cache" -H "Content-Type: application/x-www-form-urlencoded" -d 'xx=ff' -L
Ответ №1:
Как вы анализируете URL-адрес? Похоже, в вашем синтаксическом анализаторе отсутствует флаг с кодировкой URL.
Комментарии:
1. я тебя не понял, не мог бы ты быть более конкретным ?
2. как вы получили URL-адрес перенаправления: ` httpsamp;#58;//xxx.xxx.comamp;#63;srcext=valueamp;amp;erl=rrf « было ли это: ` ‘ res.заголовки.местоположение «
3. да, в res.заголовки.расположение