Autenticación del proxy en HTTParty: host, puerto, usuario y contraseña
Pase un host de proxy HTTP, un puerto numérico y credenciales de proxy opcionales directamente a una solicitud HTTParty, manteniendo el token de la API en su propia cabecera.
HTTParty acepta el proxy directo como opciones de la solicitud. Mantenga la URL del servicio como primer 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
El host y el puerto del proxy identifican al intermediario. El usuario y la contraseña del proxy se autentican allí. La cabecera Authorization pertenece a la API, cuya cuenta puede ser completamente distinta.
Para un proxy sin autenticación, omita http_proxyuser y http_proxypass. Para una solicitud de API pública en una ruta pública permitida, tome una dirección HTTP de la lista de proxies HTTP sin conservar credenciales de proxy ni en la solicitud ni en los valores predeterminados de la clase. El campo de host se pasa como dirección de proxy a Net::HTTP; proporcione el nombre de host separado de su puerto, no una URL de destino ni una URL PAC.
Una clase envoltorio que incluye HTTParty puede, en su lugar, usar su método de clase http_proxy para establecer valores predeterminados. Las opciones de la solicitud anulan esos valores para la llamada que las aporta.
Esto describe el adaptador de conexión predeterminado de HTTParty. Un connection_adapter personalizado se encarga de interpretar sus opciones, así que revise ese adaptador cuando un ajuste válido parezca ignorarse. Lea el estado HTTP por separado de los datos de la API analizados; un análisis JSON correcto no es un resultado de autenticación.