Ruby open-uri:配置 Basic 代理认证
使用 open-uri 专用的代理认证选项,不要把它与目标站点的凭据或环境默认值混用。
为中间账户使用 open-uri 专用的 Basic 代理选项:
require 'open-uri'
body = URI.open(
'https://example.com/',
proxy_http_basic_authentication: [
'http://203.0.113.10:8080',
ENV.fetch('PROXY_USER'),
ENV.fetch('PROXY_PASSWORD')
],
open_timeout: 5,
read_timeout: 10
) { |response| response.read }替换文档中的端点,并从指定的密钥来源获取账户值。不要把密码放进 URL,以免异常或支持报告日后将其打印出来。
| OpenRead 选项 | 用途 |
|---|---|
proxy_http_basic_authentication | 代理地址及其 Basic 用户名/密码. |
proxy | 不使用该组合认证选项来选择代理;同时提供两者会引发参数错误。 |
http_basic_authentication | 目标服务器账户。 |
proxy: nil | 即使存在环境默认值,也让本次读取直连。 |
没有显式代理选项时,open-uri 可能使用按协议方案区分的代理环境变量。认证选项本身已包含端点;它不需要再提供第二个 proxy 值。
此接口处理 Basic 代理认证。需要其他机制的服务则需要兼容的客户端或经批准的集成。保持 HTTPS 校验开启,然后按需检查状态/内容:代理登录成功,并不证明目标返回了预期的资源。