gpt4 book ai didi

ruby - XML-RPC over SSL with Ruby : end of file reached (EOFError)

转载 作者:太空宇宙 更新时间:2023-11-03 15:07:32 29 4
gpt4 key购买 nike

我有一些非常简单的 Ruby 代码试图通过 SSL 执行 XML-RPC:


require 'xmlrpc/client'
require 'pp'

server = XMLRPC::Client.new2("https://%s:%d/" % [ 'api.ultradns.net', 8755 ])
pp server.call2('UDNS_OpenConnection', 'sponsor', 'username', 'password')

问题是它总是导致以下 EOFError 异常:


/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/protocol.rb:135:in `sysread': end of file reached (EOFError)

看来在执行 POST 之后,我没有得到任何回复。有趣的是,如果我尝试在 HTTPS 端口上建立 HTTP 连接(反之亦然),这是我期望的行为,如果我更改协议(protocol),我实际上会得到完全相同的异常。我查看的所有内容都表明在 URL 中使用“https://”足以启用 SSL,但我开始怀疑我是否遗漏了什么。

请注意,尽管我在 RPC 中使用的凭据是伪造的,但我希望至少返回一个 XML 错误页面(类似于您使用网络浏览器访问 https://api.ultradns.net:8755/)。我已经尝试在 OSX 和 Linux 上运行这段代码,结果完全相同,所以我不得不得出结论,我只是在这里做错了什么。有没有人有任何使用 Ruby 通过 SSL 执行 XML-RPC 的示例?

最佳答案

http://www.ultradns.net/api/NUS_API_XML.pdf明确指出该协议(protocol)与标准 XML-RPC 客户端不兼容。您需要在方法调用之上添加顶层事务和 session 标记。

<transaction>
<methodCall>
...
</methodCall>
</transaction>

所以我猜 ruby​​ xml-rpc 解析器无法解析响应。只是一个理论。您是否尝试过其他 xml-rpc 客户端?

关于ruby - XML-RPC over SSL with Ruby : end of file reached (EOFError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2766889/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com