我对Ruby和RoR相当陌生,并且一直在努力解决问题,并且没有到任何地方。从Rails控制器发送POST请求进行身份验证
基本上,我正在构建一个“代理”web服务,它将处理某些请求,并将它们传递给第三方网站。从第三方网站收到的回复是HTML格式,然后将被解析并提供适当的XML响应。
我在一个点,我需要通过我的Rails的控制器发送POST请求给用户,这是我正在使用此代码做验证:
require "net/http"
require "uri"
uri = URI.parse("http://myurl.com/members.cgi")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Post.new(uri.request_uri)
request.set_form_data({"email_login" => "[email protected]", "password_login" => "password"})
response = http.request(request)
我的问题在于对响应我我正在接受。这个特定的POST请求在成功时(即,用户已经成功验证)正在返回302重定向。这本身不是一个问题,因为我可以通过获取“位置”报头值跟随重定向:
redirectLocation = response['location']
当我陷入是保持在与下面的行重定向时自己验证:
redirectResponse = Net::HTTP.get_response(URI.parse(redirectLocation))
这是继重定向,但回报显示我未通过认证的响应?
我真的不明白为什么会发生这种情况。我可以看到有通过读取返回一个验证cookie与我原来的回应:
response['cookie']
所以最后我的问题是什么,我需要做的就是服务器识别我的认证状态?以某种方式通过我的第二个请求cookie?如果是这样,我该怎么做?
非常感谢您的时间!
Rog
谢谢,但我该怎么做? – Rog 2011-04-29 06:34:57
只是添加了一个例子的链接。它很容易。它的红宝石;) – thekindofme 2011-04-29 06:35:51
感谢堆指向我在正确的方向。 – Rog 2011-04-29 07:57:45