gpt4 book ai didi

ruby - 使用 Ruby 向网络服务器发送 XML 请求

转载 作者:数据小太阳 更新时间:2023-10-29 06:50:34 25 4
gpt4 key购买 nike

恐怕我没有太多通过网络服务器发布文档(例如 XML)的经验,所以如果我对 HTTP 的理解不足,我深表歉意。

我在 127.0.0.1 上的 ruby​​ 应用程序中设置了一个基本的 Mongrel Web 服务器端口 2000 . (服务器)。

我在同一台计算机上运行一个单独的 Ruby 应用程序。 (客户)。

我需要客户端向服务器发送 XML 文档。

我曾尝试使用 Net::HTTP 来执行此操作,但我找不到一个明确的示例来告诉我应该做什么。我试过了,但遇到了错误。我已将请求分解,使其尽可能基本:

http = Net::HTTP.new("127.0.0.1", 2000)
http.post('file', 'query=foo') #xc.rb line 6

但它会导致以下错误

    C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:141:in `read_nonblock': An existing connection was forcibly closed by the remote host. (Errno::ECONNRESET)
from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:141:in `rbuf_fill'
from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:122:in `readuntil'
from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:132:in `readline'
from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:2562:in `read_status_line'
from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:2551:in `read_new'
from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1319:in `block in transport_request'
from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1316:in `catch'
from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1316:in `transport_request'
from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1293:in `request'
from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1286:in `block in request'
from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:745:in `start'
from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1284:in `request'
from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1307:in `send_entity'
from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1096:in `post'
from W:/Ruby/A/xc.rb:6:in `<main>'

我想我做的完全错了。请给我一个例子(或给我一个教程),它应该允许我发布一些基本数据,比如 "<tag1>text</tag1>" .希望我之后能够设置适当的 header 并处理响应。

此外,我不需要使用 net/http;任何没有额外商业用途许可限制的免费方法都可以。

最佳答案

这非常简单,使用 rest-client gem

require 'rest-client'

response = RestClient.post "http://127.0.0.1:2000", "<tag1>text</tag1>", :content_type => "text/xml"

关于ruby - 使用 Ruby 向网络服务器发送 XML 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9088752/

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