Autenticação de proxy no HTTParty: host, porta, usuário e senha
Passe um host de proxy HTTP, uma porta numérica e credenciais de proxy opcionais diretamente a uma requisição HTTParty, mantendo o token da API em seu próprio cabeçalho.
O HTTParty aceita o proxy de encaminhamento como opções da requisição. Mantenha a URL do serviço 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 a porta do proxy identificam o intermediário. O usuário e a senha do proxy são autenticados ali. O cabeçalho Authorization pertence à API, cuja conta pode ser completamente diferente.
Para um proxy sem autenticação, omita http_proxyuser e http_proxypass. Para uma requisição de API pública em uma rota pública permitida, pegue um endereço HTTP da lista de proxies HTTP sem manter credenciais de proxy nem na requisição nem nos padrões da classe. O campo host é passado como endereço de proxy ao Net::HTTP; forneça o nome do host separado da porta, não uma URL de destino ou URL PAC.
Uma classe wrapper que inclui HTTParty pode, em vez disso, usar seu método de classe http_proxy para definir padrões. As opções da requisição substituem esses padrões na chamada que as fornece.
Isto descreve o adaptador de conexão padrão do HTTParty. Um connection_adapter personalizado é responsável por interpretar suas opções, então inspecione esse adaptador quando uma configuração válida parecer ignorada. Leia o status HTTP separadamente dos dados da API analisados; uma análise JSON bem-sucedida não é um resultado de autenticação.