我已經寫了一小段,它發送一個GET請求來解析HTTP響應時,如果有一個200 OK響應(AUTH時成功)執行AUTH和檢查。現在,我通過這個特定的GET請求看到的一件事是,無論auth是否成功,響應始終爲200。如何使用Ruby
的DIFF是在HTTP響應。那就是當auth失敗時,第一個響應是200 OK,就像auth成功時一樣,在這之後還有第二步。該頁面再次被重定向到登錄頁面。
我只是試圖讓一個快速的腳本,可以檢查我的登錄用戶,並通過我的web應用程序,並告訴我這權威性地通過了,哪些沒有。
我應該如何檢查呢?示例代碼是這樣的:
def funcA(u, p)
print_A("#{ip} - '#{u}' : '#{p}' - Pass")
end
def try_login(u, p)
path = '/index.php?uuser=#{u}&ppass=#{p}'
r = send_request_raw({
'URI' => 'path',
'method' => 'GET'
})
if (r and r.code.to_i == 200)
check = true
end
if check == true
funcA(u, p)
else
out = "#{ip} - '#{u} - Fail"
print_B(out)
end
return check, r
end
end
更新: 我也嘗試添加了匹配「成功/失敗」關鍵字的HTTP響應未來新的檢查。它也沒有工作。但我現在注意到,回來的迴應似乎是另一種形式。 Content-Type的迴應是text/html; charset = utf-8。而且我沒有做任何解析,所以它失敗了。
成功響應是形式:
{"param1":1,"param2"="Auth Success","menu":0,"userdesc":"My User","user":"uuser","pass":"ppass","check":"success"}
失敗的反應是形式:
{"param1":-1,"param2"="Auth Fail","check":"fail"}
所以現在我需要如何解析這個響應一些指點。
很多謝謝。
你說的是http basic auth?也許你應該展示一些代碼。 – pguardiario
增加了我的代碼片斷.. – Sunshine
請注意,['和'/'或'*不是*一樣''&& /''||在紅寶石(http://devblog.avdi.org/2010/ 8月2日/使用和 - 和 - 或 - 在旁註/)。當布爾邏輯是意圖時,只有後者應該被使用。 –