3

我正在尝试将我拥有的项目从使用适配器转换ExconFaraday使用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=错误,这让我相信文档已经过时了。有人知道如何将任意连接选项传递给适配器吗?

4

1 回答 1

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

这个要点有更多使用 SSL 和 Faraday 的例子。

于 2013-05-14T16:12:50.503 回答