Изменение заголовка HTTP в Rails - PullRequest
2 голосов
/ 04 июня 2010

Я пытаюсь связаться с RESTful-сервисом в Rails. Он может возвращать данные в разных форматах, json и xml. Есть ли конкретный способ получить тип данных, который я хочу.

Служба упоминает, что ACCEPT должен быть установлен в заголовке HTTP. Я не уверен, как это сделать в Ruby.

В настоящее время я делаю это для получения

response = Net::HTTP.get( URI.parse( <url> ) )

Я понятия не имею, как изменить информацию заголовка для этого вызова. Любая помощь приветствуется. Спасибо.

Ответы [ 2 ]

3 голосов
/ 04 июня 2010

у меня так работает

uri = URI( <domain>:<port>/<path> )
params = { <query_hash> }
headers = { <header_hash> }

http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.path)
request.set_form_data( params )
request = Net::HTTP::Get.new( uri.path+ '?' + request.body , headers)
response = http.request(request)

где query_hash - все запросы в хэше, например: { "q" => "cats" } аналогично для header_hash например: { "ACCEPT" => "text/json" }

0 голосов
/ 04 июня 2010

Сначала вам нужно создать http-объект сессии:

http_session = Net::HTTP.new( URI.parse('...').to_s, 80 )

Затем вы можете определить заголовки http как хеш и передать его для получения метода в качестве второго аргумента:

http_session.get('/resources', {'Accept' => 'application/xml+xhtml'})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...