ruby-on-rails - Net::HTTP 发送请求 xml

标签 ruby-on-rails xml request uri

我需要以xml的形式发送请求。

uri =URI('https://fs.example.com:8443/services/trust/13/usermixed')
http = Net::HTTP.new(uri)
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/soap+xml; charset=UTF-8'
request.body = @body(as xml)
response = http.request(request)

当向方法末尾的 uri 发送请求时,Net::HTTP::Post.new 会 Hook 端口 80,结果会在 https 上建立一个连接://fs.example.com:8443/services/trust/13/usermixed:80 这会导致错误 SocketError: 无法打开与 https://fs.example.com:8443/的 TCP 连接services/trust/13/usermixed:80(getaddrinfo:名称或服务未知)

类似的问题可以通过方法 Net::HTTP.post_form(uri, data) 解决,最后没有端口......但它只需要通过哈希值获取日期。我需要将 request.body 发送到 XML

谢谢!

最佳答案

当您想要启动新的 http session 时,我们只使用基本 URL,并将请求发送到纯 URL

uri = URI('https://fs.example.com:8443/services/trust/13/usermixed')
http = Net::HTTP.new(uri.host, uri.port)

request = Net::HTTP::Post.new(uri.to_s)
request['Content-Type'] = 'application/soap+xml; charset=UTF-8'
request.body = @body(as xml)
response = http.request(request)

然后请求应该按预期工作。

关于ruby-on-rails - Net::HTTP 发送请求 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48002063/

相关文章:

java - 从具有相似属性名称的 XSD 生成 JAXB 类

android - 适用于所有安卓设备的响应式设计

python - 如何使用 MITMProxy 通过代理正确转发请求?

ruby-on-rails - 如何将 ActiveRecord 与 EventMachine 异步使用?

ruby-on-rails - 事件管理字段上的 bool 值返回空而不是 false (Rails 3.2/Active Admin)

java - 添加外部 JAR 文件后重建时 Eclipse 挂起

javascript - 如何从另一个网站向 Node.js 应用程序发出请求?

python - GAE/Python - 将请求从 Controller 传递到模型的最佳方式是什么?

ruby-on-rails - 在 Rspec 中创建方法

javascript - 如何将嵌套的Rails ActiveRecord查询结果传递给gon?