HTTParty accetta il proxy forward come opzioni della richiesta. Mantieni l'URL del servizio come primo argomento:

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

L'host e la porta del proxy identificano l'intermediario. Il nome utente e la password del proxy si autenticano lì. L'intestazione Authorization appartiene all'API, il cui account può essere del tutto diverso.

Per un proxy senza autenticazione, ometti http_proxyuser e http_proxypass. Per una richiesta API pubblica su una rotta pubblica consentita, prendi un indirizzo HTTP dal elenco di proxy HTTP senza conservare credenziali proxy né nella richiesta né nei valori predefiniti della classe. Il campo host viene passato come indirizzo proxy a Net::HTTP; fornisci il nome host separato dalla sua porta, non un URL di destinazione o un URL PAC.

Una classe wrapper che include HTTParty può invece usare il suo metodo di classe http_proxy per impostare i valori predefiniti. Le opzioni della richiesta sovrascrivono quei valori per la chiamata che le fornisce.

Questo descrive l'adattatore di connessione predefinito di HTTParty. Un connection_adapter personalizzato è responsabile dell'interpretazione delle sue opzioni, quindi esamina quell'adattatore quando un'impostazione valida sembra ignorata. Leggi lo stato HTTP separatamente dai dati API analizzati; un'analisi JSON riuscita non è un risultato di autenticazione.

Articoli correlati