Autentificare prin proxy în HTTParty: gazdă, port, nume de utilizator și parolă
Transmiteți o gazdă de proxy HTTP, un port numeric și acreditări de proxy opționale direct către o cerere HTTParty, păstrând tokenul API în propriul său antet.
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.