【问题标题】:how send post request and open url in Ruby Sinatra如何在 Ruby Sinatra 中发送发布请求和打开 url
【发布时间】:2017-02-13 17:10:50
【问题描述】:

我正在发送一个帖子请求, 并且需要像 html 表单一样获得结果, 请求后我们会去哪里

<form action="url" method="post">

我试过这个:

return response.body()

我只得到 html 页面的正文, 但我需要重定向到这个页面。 访问所需 URL 的正确方法是什么?

这里是我的发布请求代码:

    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

【问题讨论】:

    标签: ruby sinatra


    【解决方案1】:

    如果你想直接传递一个 POST 请求并重定向到它,你可以这样做

    post '/send' do
      redirect <your_url>, 307
    end
    

    307是不修改请求方法的HTTP状态码。

    像这样处理重定向响应:

    post '/send' do
      # post form
      redirect response['location'], 302
    end
    

    【讨论】:

    • 不,我需要将收到的帖子请求修改为“/send”,添加一些字段,然后发送到 walletone.com
    • 响应没有重定向位置吗?
    • 这个位置有什么用?我有uri
    • 不,您从post_form 方法得到的响应。你得到什么状态码? 200 OK 或 302 重定向等...
    • 哇,现在response.body 是:&lt;html&gt;&lt;head&gt;&lt;title&gt;Object moved&lt;/title&gt;&lt;/head&gt;&lt;body&gt; &lt;h2&gt;Object moved to &lt;a href="/checkout/checkout/Index?i=334742142681&amp;amp;m=191554294939"&gt;here&lt;/a&gt;.&lt;/h2&gt; &lt;/body&gt;&lt;/html&gt;
    猜你喜欢
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    • 2014-05-10
    • 2019-10-28
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    相关资源
    最近更新 更多