Автентифікація через проксі в 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 не є результатом автентифікації.