Аўтэнтыфікацыя праз проксі ў 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; падавайце імя хоста асобна ад порта, а не адрас прызначэння ці PAC-адрас.
Клас-абгортка, які ўключае HTTParty, можа замест гэтага выкарыстаць метад класа http_proxy, каб задаць значэнні па змаўчанні. Параметры запыту перавызначаюць гэтыя значэнні для выкліку, які іх перадае.
Гэта апісвае адаптар злучэнняў HTTParty па змаўчанні. Уласны connection_adapter адказвае за інтэрпрэтацыю сваіх параметраў, таму праверце гэты адаптар, калі слушная налада выглядае праігнараванай. Чытайце HTTP-статус асобна ад разобраных даных API; паспяховы разбор JSON не з'яўляецца вынікам аўтэнтыфікацыі.