ruby - 将任意连接选项传递给法拉第

标签 ruby faraday

我正在尝试使用 Excon 适配器将我拥有的项目从使用 Excon 转换为 Faraday,但我没有祝你好运。

问题是我需要将一些任意连接选项传递给 Excon,因为我与之交互的 API 使用客户端 SSL 证书进行身份验证。

为了与直接 Excon 建立联系,我使用了这个:

@connection = Excon.new("some_url", client_cert: File.expand_path(@some_cert), client_key: File.expand_path(@some_key))

根据 Faraday 文档,我应该可以做这样的事情:s

@connection = Faraday::Connection.new(url: "some_url", client_cert: File.expand_path(@some_cert), client_key: File.expand_path(@some_key)) do |faraday|
  faraday.adapter :excon
end

当我尝试这样做时(使用 Github 的 0.9 RC5),我收到了一个 undefined method client_cert= 错误,这让我相信文档已经过时了。有人知道如何将任意连接选项传递给适配器吗?

最佳答案

您必须将 SSL 选项作为散列传递。这应该有效:

ssl_opts = {
  client_cert: File.expand_path(@some_cert),
  client_key: File.expand_path(@some_key)
}
@connection = Faraday::Connection.new(url: "some_url", ssl: ssl_opts) do |faraday|
  faraday.adapter :excon
end

This gist有更多关于将 SSL 与 Faraday 结合使用的示例。

关于ruby - 将任意连接选项传递给法拉第,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16545857/

相关文章:

ruby-on-rails - Ruby on Rails 在 Amazon AWS 上安装失败 : Could not create Makefile due to some reason, 可能缺少必要的库和/或 header

ruby - 在 Balanced Ruby 客户端中使用 Faraday 阻止网络调用的最佳方法是什么?

ruby-on-rails - 如何将法拉第请求主体添加到 Rails 应用程序中的 Datadog 跟踪中

mysql - 如何让 mysql 将 DateTime 输出为 Julian 日数?

ruby - 带有法拉第 gem 的飞行前选项请求

ruby-on-rails - 如何在 Ruby 中使用 Mechanize 或 Faraday 发送 JSON 表单数据

ruby - 在法拉第传递 url 参数数组

ruby-on-rails - Rails 5 - 如何创建自定义脚手架生成器?

Ruby mixin 给出未识别的常量错误

ruby-on-rails - 安装 rtesseract gem 后 Rtesseract 抛出错误