Ruby httparty получает ответ url или id после сообщения
Как я могу получить URL-адрес ответа или id из проекта rails с httparty в отдельном script после выполнения сообщения?
ruby script:
HTTParty.post('http://localhost:3000/change_logs', parameters)
response.body и все остальные не отображают URL и идентификатор ответа
Ответы
Ответ 1
Это работает для меня, возможно, лучший способ сделать это, хотя..
get_change_log_id = HTTParty.post('http://localhost:3000/change_logs.xml', parameters).to_a
get_change_log_id.each do |r|
r.each do |sub|
sub2 = sub.to_a
sub2.each do |s|
if s.index "id"
@change_log_id = s.to_s.sub(/[i]/, '').sub(/[d]/, '')
end
end
end
end
Ответ 2
Через два года я нашел способ получить доступ к последнему URI из атрибута request
в response
:
url = "http://example.com/redirects/to/www"
response = HTTParty.get(url)
response.request.last_uri.to_s
# => "http://www.example.com"
Ответ 3
К сожалению, эта информация не поддерживается HTTParty. Когда он сталкивается с перенаправлением, он будет следовать за перенаправлением и возвращать результат этого запроса. Он не сохранит какую-либо информацию из первоначального запроса.
Хорошая новость заключается в том, что подобное поведение (обычно) предсказуемо. Веб-приложения обычно перенаправляются на одни и те же вещи после отправки запроса на URL-адрес.
Но если вы действительно хотите это сделать, вам придется использовать библиотеку net/http, которая поставляется с Ruby. Это не намного сложнее, чем HTTParty, но это не намного больше работает.