【问题标题】:How can I post xml data using net/http that also has data in the url如何使用在 url 中也有数据的 net/http 发布 xml 数据
【发布时间】:2011-12-20 20:16:24
【问题描述】:

我正在使用需要我将 xml 发布到 url 的 api,例如 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)}

我想知道是否可以将用户 ID 作为表单数据但也可以发布 xml?我基本上应该将 xml 发布到http://www.someapi.com/process_leads.asp?userID=1204。这可能吗?

【问题讨论】:

标签: ruby-on-rails xml http post net-http


【解决方案1】:

我会考虑使用 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}"

希望这会有所帮助。

【讨论】:

  • 我担心我不得不迁移到 http 库。我会试一试。
  • 别害怕……它会让你的生活更轻松,你的代码也不会那么臭。
  • 在我把头撞在墙上几个小时后才发现我有一个简单的错字!
猜你喜欢
  • 2013-07-06
  • 1970-01-01
  • 2011-01-05
  • 1970-01-01
  • 2015-06-04
  • 1970-01-01
  • 1970-01-01
  • 2021-10-13
  • 1970-01-01
相关资源
最近更新 更多