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 не з'яўляецца вынікам аўтэнтыфікацыі.

Падобныя артыкулы