Ruby的XMLRPC::Client是否有调用大小限制?

Ruby的XMLRPC::Client是否有调用大小限制?,ruby,xml-rpc,Ruby,Xml Rpc,我在Ruby中使用XMLRPC::Client,这与Ruby 1.8到2.0的行为相同,用于向服务器发送调用,如下所示: server = XMLRPC::Client.new2( url ) server.timeout = 300 response = server.call( "service.methodname", bigarray ) 只要传递的bigarray不是太大,一切都正常。从它包含大约10K个浮点数的那一刻起,我得到了以下错误跟踪: $ ruby client_large

我在Ruby中使用XMLRPC::Client,这与Ruby 1.8到2.0的行为相同,用于向服务器发送调用,如下所示:

server = XMLRPC::Client.new2( url )
server.timeout = 300
response = server.call( "service.methodname", bigarray )
只要传递的bigarray不是太大,一切都正常。从它包含大约10K个浮点数的那一刻起,我得到了以下错误跟踪:

$ ruby client_largeinputset.rb 
/Users/aliekens/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/protocol.rb:153:in `read_nonblock': Connection reset by peer (Errno::ECONNRESET)
from /Users/aliekens/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/protocol.rb:153:in `rbuf_fill'
from /Users/aliekens/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/protocol.rb:122:in `read_all'
from /Users/aliekens/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http/response.rb:292:in `block in read_body_0'
from /Users/aliekens/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http/response.rb:269:in `inflater'
from /Users/aliekens/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http/response.rb:274:in `read_body_0'
from /Users/aliekens/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http/response.rb:201:in `read_body'
from /Users/aliekens/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http/response.rb:226:in `body'
from /Users/aliekens/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http/response.rb:163:in `reading_body'
from /Users/aliekens/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:1411:in `block in transport_request'
from /Users/aliekens/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:1402:in `catch'
from /Users/aliekens/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:1402:in `transport_request'
from /Users/aliekens/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:1375:in `request'
from /Users/aliekens/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:1321:in `request_post'
from /Users/aliekens/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/xmlrpc/client.rb:477:in `do_rpc'
from /Users/aliekens/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/xmlrpc/client.rb:281:in `call2'
from /Users/aliekens/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/xmlrpc/client.rb:262:in `call'
from client_largeinputset.rb:28:in `<main>'
我不知道XMLRPC规范中的调用大小限制,但在我的工作流中似乎有一个限制

首先:这是我的ruby客户端的问题,还是我的服务器用xmlrpc-c编写的问题,通过一个可能不接受大请求的深渊HTTP服务器


如果是在客户端,那么有没有办法绕过这个问题?如果存在限制,我可以更改客户端呼叫请求的大小吗?除了ruby的本机XMLRPC::Client实现之外,还有什么其他途径可以绕过这个问题吗?我希望找到一个解决方案,在客户端解决这个问题,而不必调整服务器端,除非这确实是服务器大小的问题。

客户端生成的XML请求有多大?这对服务器来说不是太大了吗?McFinnigan,我不知道Ruby的XMLRPC::Client生成的XML请求的字节有多大。但我从您的问题中了解到,您可能还怀疑这更可能是服务器的问题,而不是客户端的问题?我将试着看看是否可以编写一个小型C客户机来进行调查。除了XMLRPC之外,服务器还应该能够处理调用。