我正在尝试使用 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/