全局配置法拉第用户代理

Globally Configure Faraday User-Agent

我继承了一个从 CASinoApp 派生出来的 Ruby 项目,它依赖于 CASino,它使用 Faraday 进行 HTTP 请求。我真的不想分叉CASino来修改how it invokes Faraday.post.

有没有办法全局配置 Faraday 来为随后的所有请求设置它的用户代理?具体来说,我 不能 运行 Faraday 的构造函数来获取连接并对其进行配置 - 因为 CASino 不会将我配置的连接用于它的请求。我需要以某种方式改变法拉第的内部 "default" 配置。

在现代版本的 Faraday 中,您应该可以使用 Faraday.default_connection_options。在我们的例子中,我们被困在使用 0.9.2 并且不得不实际配置一个连接对象并设置 Faraday.default_connection 原因 addressed in 0.12.2.

Faraday.default_connection = Faraday.new(options = {:headers=>{:user_agent=>"My Custom UA Here"}})

对于任何像我们一样专门尝试设置默认超时选项的人来说,这在现代法拉第实现中对我们有用:

Faraday.default_connection_options = Faraday::ConnectionOptions.new({timeout: 5, open_timeout: 5})

您还可以在该散列中设置任何其他请求选项。

这就是法拉第 1.1.0 版对我有用的东西。

Faraday.default_connection_options.headers = { "User-Agent" => 'Mozilla/5.0' }