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.
我查看了代码,但无法弄清楚我必须提供的价值 - 而且这方面的文档有点稀缺
提前感谢任何可能指向正确方向的回复
答案 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