Обработайте пароль прокси-сервера для входа «@»

#node.js #bash #curl #proxy #passwords

Вопрос:

Я делаю запрос curl с помощью прокси-сервера. Допустим,:

 proxyUsername = "username"
proxyPassword = "p@ssw3rd"
proxyHost = "myproxy.node-a.io"
proxyPort = "11115"
 

Вы можете создать прокси-запрос для ipinfo.io вот так:

 curl --proxy http://username:password@host:port https://ipinfo.io/ip
 

С приведенными выше значениями прокси завиток будет выглядеть так:

 curl --proxy http://username:p@ssw3rd@myproxy.node-a.io:11115 https://ipinfo.io/ip
 

Проблема в том, что первый знак «@» в пароле рассматривается как разделитель токенов между паролем и хостом…

Я пробовал кодировать пароль по URL-адресу, но это тоже не работает:

 curl --proxy http://username:p@ssw3rd@myproxy.node-a.io:11115 https://ipinfo.io/ip
 

Есть ли способ создать URL-адрес аутентификации прокси-сервера, как описано выше, для прокси-серверов, в паролях которых есть символы»@»?

(Для контекста я пытаюсь установить --proxy-server для сеанса chrome.)

Ответ №1:

Взято отсюда:

URL-адреса используют кодировку в процентах, она же кодировка URL.

@ знак находится @ в этой кодировке.

% curl -k -X POST https://user1:mypass8@@myshop.com/job/build

Или альтернативно с -u --user параметром / :

% curl -u user1:mypass8@ -k -X POST https://myshop.com/job/build