我试图将一个使用Excon适配器的项目从Faraday转换为Excon,但我没有任何运气。
问题是,我需要传递一些任意连接选项到Excon,因为我正在连接的api使用客户端ssl证书进行身份验证。
为了与StraightExcon建立连接,我使用了这个:

@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.9rc5)时,我得到一个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一起使用的示例。

09-17 21:04