Аутентификация через прокси в HTTParty: хост, порт, имя пользователя и пароль
Передайте хост HTTP-прокси, числовой порт и необязательные учётные данные прокси прямо в запрос HTTParty, оставив токен API в его собственном заголовке.
HTTParty принимает прямой прокси как параметры запроса. Оставьте URL сервиса первым аргументом:
response = HTTParty.get(
'https://api.example/items',
http_proxyaddr: 'proxy.example',
http_proxyport: 8080,
http_proxyuser: ENV.fetch('PROXY_USER'),
http_proxypass: ENV.fetch('PROXY_PASSWORD'),
headers: { 'Authorization' => "Bearer #{ENV.fetch('API_TOKEN')}" },
open_timeout: 5,
read_timeout: 15
)
puts response.code
Хост и порт прокси обозначают посредника. Имя пользователя и пароль прокси аутентифицируются там. Заголовок Authorization принадлежит API, чья учётная запись может быть совсем другой.
Для прокси без аутентификации пропустите http_proxyuser и http_proxypass. Для публичного запроса к API на разрешённом публичном маршруте возьмите HTTP-адрес из списка HTTP-прокси, не сохраняя учётные данные прокси ни в запросе, ни в значениях класса по умолчанию. Поле хоста передаётся как адрес прокси в Net::HTTP; укажите имя хоста отдельно от порта, а не URL назначения или URL PAC.
Класс-обёртка, включающий HTTParty, может вместо этого использовать свой метод класса http_proxy, чтобы задать значения по умолчанию. Параметры запроса переопределяют эти значения для вызова, который их передаёт.
Это описывает адаптер соединения HTTParty по умолчанию. Собственный connection_adapter отвечает за интерпретацию своих параметров, поэтому проверьте этот адаптер, если допустимая настройка кажется проигнорированной. Читайте HTTP-статус отдельно от разобранных данных API; успешный разбор JSON не является результатом аутентификации.