Как я могу опубликовать данные XML, используя net / http, который также содержит данные в URL - PullRequest
1 голос
/ 03 ноября 2011

Я работаю с 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. Это возможно?

1 Ответ

7 голосов
/ 03 ноября 2011

Я хотел бы рассмотреть возможность использования библиотеки Http, например, HTTParty

Пример использования HTTParty для вашего запроса будет выглядеть примерно так:

HTTParty.post('http://www.someapi.com/process_leads.asp', :query => {:userID => 1024}, :body => xml )

опция: query принимает хеш ключа / значений, которые будут добавлены к URL записи, тело: куда идет xml.

ПРИМЕЧАНИЕ: некоторые API требуют, чтобы у xml было имя, например. возможно, вам придется сделать что-то вроде

:body => "request=#{xml}"

Надеюсь, это поможет.

...