Ethon - 有效的解析选项格式

时间:2014-11-27 16:56:44

标签: ruby typhoeus

Curl有一个选项,允许我指定应该解析哪个IP域

e.g. curl --resolve example.com:443:1.2.3.4 https://example.com/foo

确保调用非常特定的服务器 (例如,当多个服务器具有相同的vhost时,通常在其前面有一个负载均衡器,并且有多个应用程序在具有不同vhost的同一端口上运行)

使用Ethon时如何设置此值? https://github.com/typhoeus/ethon

这就是我期望它的运作方式

Ethon::Easy.new(url: "https://example.com/foo", :resolve => "example.com:443:1.2.3.4")

但是我得到了一个无效的值异常(我尝试了多种不同的格式)

Ethon::Errors::InvalidValue: The value: example.com:443:1.2.3.4 is invalid for option: resolve.

我查看了代码,但无法弄清楚我必须提供的价值 - 而且这方面的文档有点稀缺

提前感谢任何可能指向正确方向的回复

1 个答案:

答案 0 :(得分:0)

感谢Github上的i0rek,我得到了我想要的答案:

resolve = nil
Ethon::Curl.slist_append(resolve, "example.com:443:1.2.3.4")
e = Ethon::Easy.new(url: "https://example.com/foo", :resolve => resolve)
#=> #<Ethon::Easy:0x007faca2574f30 @url="https://example.com/foo", ...>

可在此处找到更多信息: https://github.com/typhoeus/ethon/issues/95#event-199961240