我對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