HTTParty acepta o proxy directo como opcións da solicitude. Manteña o URL do servizo como primeiro argumento:

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

O host e o porto do proxy identifican o intermediario. O usuario e o contrasinal do proxy autentícanse alí. A cabeceira Authorization pertence á API, cuxa conta pode ser completamente distinta.

Para un proxy sen autenticación, omita http_proxyuser e http_proxypass. Para unha solicitude de API pública nunha ruta pública permitida, tome un enderezo HTTP da lista de proxies HTTP sen conservar credenciais de proxy nin na solicitude nin nos valores predeterminados da clase. O campo de host pásase como enderezo de proxy a Net::HTTP; forneza o nome de host separado do seu porto, non un URL de destino nin un URL PAC.

Unha clase envoltorio que inclúe HTTParty pode, no seu lugar, usar o seu método de clase http_proxy para establecer valores predeterminados. As opcións da solicitude anulan eses valores para a chamada que os fornece.

Isto describe o adaptador de conexión predeterminado de HTTParty. Un connection_adapter personalizado encárgase de interpretar as súas opcións, así que revise ese adaptador cando un axuste válido pareza ignorarse. Lea o estado HTTP por separado dos datos da API analizados; unha análise JSON correcta non é un resultado de autenticación.

Artigos relacionados