代理就该放在你的 HTTParty 类上
把 HTTParty 类的代理配置固定绑定在发送请求的那个类方法上。
当 Ruby 类 include 了 HTTParty,就把代理放在这个类上,并通过它发送请求:
class Reports
include HTTParty
http_proxy 'proxy.example', 8080
end
response = Reports.get('https://reports.example/monthly')示例假设 HTTParty 已加载。proxy 方法接收主机名和整数端口,还可以传用户名和密码参数。对于没有代理账号的、被允许的 public-API 测试,可以从 HTTP 代理列表里选一个 HTTP 候选,用它提供主机和端口。目标 URL 仍留在 get 上。
在 Reports 的实例方法里,如果意图是调用那个已配置的类方法,就要用 self.class.get(...)。改成调用顶层的 HTTParty 模块,可能会绕过你刚配置好默认值的包装层。
当多个 API 包装层共用一个应用时,这个区别同样重要。给每个包装层各自应有的代理策略,而不是为了修一个类去全局改动 HTTParty::Basement。
HTTParty 还暴露 按请求设置的代理选项,例如 http_proxyaddr 和 http_proxyport。当这条路由确实只属于某一次请求时,就用它们。如果每个 Reports 操作都该走同一条路,类级别的默认值更好读。