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

时间:2013-05-14 14:27:02

标签: ruby faraday

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

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

要与直线Excon建立连接,我使用的是:

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

根据法拉第文件,我应该可以这样做: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=错误,这让我相信文档已过时。有人知道如何将任意连接选项传递给适配器吗?

1 个答案:

答案 0 :(得分:3)

您必须将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的示例。