Goo*_*ner 1 api http ruby-on-rails-3
我试图将数据从XML格式的数据传递到API.我在控制器中编写了以下代码.
require 'active_support/builder' unless defined?(Builder)
require 'uri'
require 'net/http'
def gen_xml
xml = Builder::XmlMarkup.new
@customers = Customer.find(:all)
url = "http://.......................xml?";
request = Net::HTTP::Post.new(url)
request.add_field "Content-Type", "application/xml"
request.body = xml
uri = URI.parse(url)
http = Net::HTTP.new(uri.host, uri.port)
response = http.request(request)
end
Run Code Online (Sandbox Code Playgroud)
我用XML构建器创建了一个XML文件,但是我无法将这个XML数据传递给API.上面的代码不会在日志中留下任何错误痕迹或任何相应的操作.
嘿!最后想通了
我能够通过进行以下更改将数据传递给API:
1)最初,XML数据被复制到一个字符串中
x = Builder::XmlMarkup.new(:target => out_string = "<?xml version='1.0' encoding='UTF-8'?>\n", :indent =>1)
Run Code Online (Sandbox Code Playgroud)
2)稍后,使用此'out_string'传递xml数据.通过request.body = out_string; 如下 ,
uri = URI.parse("http:............")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Post.new(uri.request_uri)
request.body = out_string
response = http.request(request)
Run Code Online (Sandbox Code Playgroud)