HTTParty acceptă proxy-ul direct ca opțiuni ale cererii. Păstrați URL-ul serviciului ca prim argument:

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

Gazda și portul proxy-ului desemnează intermediarul. Numele de utilizator și parola proxy-ului se autentifică acolo. Antetul Authorization aparține API-ului, al cărui cont poate fi complet diferit.

Pentru un proxy fără autentificare, omiteți http_proxyuser și http_proxypass. Pentru o cerere API publică pe o rută publică permisă, luați o adresă HTTP din lista de proxy-uri HTTP fără a păstra acreditări de proxy în cerere sau în valorile implicite ale clasei. Câmpul gazdă este transmis ca adresă de proxy către Net::HTTP; furnizați numele gazdei separat de port, nu un URL de destinație sau un URL PAC.

O clasă înveliș care include HTTParty poate în schimb să folosească metoda sa de clasă http_proxy pentru a stabili valori implicite. Opțiunile cererii înlocuiesc aceste valori implicite pentru apelul care le furnizează.

Aceasta descrie adaptorul de conexiune implicit al HTTParty. Un connection_adapter personalizat este responsabil de interpretarea opțiunilor sale, așa că inspectați acel adaptor când o setare validă pare ignorată. Citiți statusul HTTP separat de datele API analizate; o analiză JSON reușită nu este un rezultat de autentificare.

Articole similare