#ruby #sinatra
#ruby #sinatra
Вопрос:
я отправляю post-запрос, и мне нужно получить результат, как с помощью html-формы, где мы переходим к некоторому URL-адресу после выполнения запроса
<form action="url" method="post">
я попробовал это:
return response.body()
и я получаю только тело html-страницы,
но мне нужно перенаправить на эту страницу.
как правильно перейти к нужному URL-адресу?
вот мой код для post-запроса:
post '/send' do
uri = URI.parse("https://wl.walletone.com/checkout/checkout/Index")
response = Net::HTTP.post_form(uri, {
"WMI_MERCHANT_ID" => "xxx",
"WMI_PAYMENT_AMOUNT" => "10.00",
"WMI_CURRENCY_ID" => "643"
})
end
Ответ №1:
Если вы хотите напрямую передать POST-запрос и перенаправить на него, вы можете сделать
post '/send' do
redirect <your_url>, 307
end
307
является ли код состояния HTTP не изменять метод запроса.
Обработайте ответ перенаправления следующим образом:
post '/send' do
# post form
redirect response['location'], 302
end
Комментарии:
1. Нет, мне нужно изменить полученный post-запрос на «/ send», добавить несколько полей и отправить его walletone.com
2. У ответа нет местоположения перенаправления?
3. что за это местоположение? у меня есть
uri
4. Нет, ответ, который вы получаете от
post_form
метода. Какой код состояния вы получаете? 200 OK или 302 перенаправления и т. Д…5. вау, теперь
response.body
это:<html><head><title>Object moved</title></head><body> <h2>Object moved to <a href="/checkout/checkout/Index?i=334742142681amp;amp;m=191554294939">here</a>.</h2> </body></html>