我写了一个简短的片段,它发送一个 GET 请求,执行身份验证并检查是否有 200 OK 响应(当身份验证成功时)。现在,我在这个特定的 GET 请求中看到的一件事是,无论身份验证是否成功,响应总是 200。
差异在 HTTP 响应中。也就是认证失败的时候,第一个响应是200 OK,和认证成功的时候一样,之后就是第二步。该页面再次被重定向到登录页面。
我只是想制作一个快速脚本,它可以检查我的登录用户并传递我的 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"}
所以现在我需要一些关于如何解析这个响应的指示。
非常感谢。