1

我正在使用一个需要我将 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。那可能吗?

4

1 回答 1

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}"

希望这可以帮助。

于 2011-11-03T09:13:36.327 回答