HTTParty akzeptiert den Forward-Proxy als Anfrageoptionen. Behalten Sie die Dienst-URL als erstes 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

Proxy-Host und -Port bezeichnen den Vermittler. Proxy-Benutzer und -Passwort authentifizieren sich dort. Der Authorization-Header gehört zur API, deren Konto völlig anders sein kann.

Bei einem Proxy ohne Authentifizierung lassen Sie http_proxyuser und http_proxypass weg. Für eine öffentliche API-Anfrage auf einer erlaubten öffentlichen Route nehmen Sie eine HTTP-Adresse aus der HTTP-Proxy-Liste, ohne Proxy-Zugangsdaten in der Anfrage oder in den Klassenvorgaben zu behalten. Das Host-Feld wird als Proxy-Adresse an Net::HTTP übergeben; geben Sie den Hostnamen getrennt vom Port an, nicht eine Ziel-URL oder PAC-URL.

Eine Wrapper-Klasse, die HTTParty einbindet, kann stattdessen ihre Klassenmethode http_proxy verwenden, um Vorgaben zu setzen. Anfrageoptionen überschreiben diese Vorgaben für den Aufruf, der sie angibt.

Dies beschreibt den Standard-Verbindungsadapter von HTTParty. Ein eigener connection_adapter ist für die Auslegung seiner Optionen verantwortlich; prüfen Sie diesen Adapter, wenn eine gültige Einstellung ignoriert zu werden scheint. Lesen Sie den HTTP-Status getrennt von den geparsten API-Daten; erfolgreiches JSON-Parsen ist kein Authentifizierungsergebnis.

Ähnliche Artikel