让我们说我有一篇博客帖子,用户正在创建,我希望将所有数据作为具有特定架构的XML发送到外部Web服务,以便可以将其提取到该Web服务中。
我一直在研究ActionDispatch :: Request
我读了这篇Using Ruby on Rails to POST JSON/XML data to a web service帖并回答
但是我收到一条错误,说content_type不是一个有效的请求方法。所以我更改了那一行来调用header方法并使用适当的信息为内容类型创建一个标题
好的......现在去哪儿?
到目前为止,这是我的代码:
url= URI.parse('http://10.29.3.47:8080/ingest')
response = Net::HTTP::Post.new(url.path)
request.headers["Content-Type"] = 'application/json'
request.body = 'all of my xml data and schema which is far too long to type here'
response = Net::HTTP.start(url.host, url.port) {|http| http.request(request)}
assert_equal '201 Created', response.get_fields('Status')
我得到一个错误,说request.body也不是一个有效的方法调用,但是当我查看API时,匹配body的唯一东西是“body()”,它不带参数。那么如何将我的帖子内容传递给网络服务?
感谢您的帮助!
答案 0 :(得分:1)
您有response = Net::HTTP::Post.new(url.path)
而不是request = Net::HTTP::Post.new(url.path)
,add标题为add_field
。
require 'net/http'
require 'uri'
url= URI.parse('http://10.29.3.47:8080/ingest')
request = Net::HTTP::Post.new(url.path)
request.add_field 'Content-Type', 'application/json'
request.body = 'all of my xml data and schema which is far too long to type here'
response = Net::HTTP.start(url.host, url.port) {|http| http.request(request)}