我正在使用api,要求我将xml发布到url,例如someapi.com?userID = 123。到目前为止,我已经尝试过这个(假设xml已经在xml变量中编写):
url = URI.parse('http://www.someapi.com/process_leads.asp')
request = Net::HTTP::Post.new(url.path)
request.content_type = 'text/xml'
request.body = xml
request.set_form_data({'userID' => '1204'}, ';')
response = Net::HTTP.start(url.host, url.port) {|http| http.request(request)}
我想知道我是否可以将userID作为表单数据但是也可以发布xml?我基本上应该将xml发布到http://www.someapi.com/process_leads.asp?userID=1204。这可能吗?
答案 0 :(得分:7)
我会考虑使用Http库,例如HTTParty
对您的请求使用HTTParty的示例如下所示:
HTTParty.post('http://www.someapi.com/process_leads.asp', :query => {:userID => 1024}, :body => xml )
:query选项获取将添加到帖子URL的键/值的哈希值, :body是xml所在的位置。
注意:某些api要求xml具有一个名称,例如你可能需要做类似
的事情:body => "request=#{xml}"
希望这有帮助。