Jsoup身份验证失败

时间:2014-08-19 13:20:51

标签: java android authentication cookies jsoup

我尝试使用以下代码连接此网站:https://ent.enteduc.fr/CookieAuth.dll?GetLogon?curl=Z2F&reason=0&formdir=1

Connection.Response response = Jsoup.connect("https://ent.enteduc.fr/CookieAuth.dll?GetLogon?curl=Z2F&flags=0&forcedownlevel=0&formdir=1&username=XXX&password=XXX&trusted=4&SubmitCreds.x=36&SubmitCreds.y=7&SubmitCreds=Ouvrir+une+session")
                        .method(Connection.Method.GET)
                        .execute();

                Document Doc = Jsoup.connect("https://ent.enteduc.fr/CookieAuth.dll?GetLogon?curl=Z2F&reason=0&formdir=1")
                        .data("username","myusername")
                        .data("password","mypassword")
                        .data("curl","Z2F")
                        .data("flags","0")
                        .data("forcedownlevel","0")
                        .data("formdir","1")
                        .data("trusted","4")
                        .data("SubmitCreds.x","40") //Seems to send the coordinates of the cursor
                        .data("SubmitCreds.y","12") //Seems to send the coordinates of the cursor
                        .data("SubmitCreds","Ouvrir une session")
                        .cookies(response.cookies())
                        .post();
                Log.e("Body", Doc.body().toString());

但显示的" Body"仍然是身份验证页面(Logcat中没有错误) 怎么了?

以下是连接的详细信息,请使用Chromes的控制台

Remote Address:85.90.60.205:443
Request URL:https://ent.enteduc.fr/CookieAuth.dll?Logon
Request Method:POST
Status Code:302 Moved Temporarily
Request Headersview source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:max-age=0
Connection:keep-alive
Content-Length:165
Content-Type:application/x-www-form-urlencoded
Cookie:ISAWPLB{FE9B5C07-18E7-4D86-BC7C-2F0AFE4F36BF}={8A3F320B-C8EB-40F9-A11E-D036A91F953F}; __utma=136247269.742318163.1408441429.1408445338.1408450626.3; __utmb=136247269.5.10.1408450626; __utmc=136247269; __utmz=136247269.1408441429.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); WSS_KeepSessionAuthenticated=; logondata=acc=0&lgn=*********
Host:ent.enteduc.fr
Origin:https://ent.enteduc.fr
Referer:https://ent.enteduc.fr/CookieAuth.dll?GetLogon?curl=Z2F&reason=0&formdir=1
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36
Query String Parametersview sourceview URL encoded
Logon:
Form Dataview sourceview URL encoded
curl:Z2F
flags:0
forcedownlevel:0
formdir:1
username:myusername
password:mypass
trusted:4
SubmitCreds.x:53
SubmitCreds.y:12
SubmitCreds:Ouvrir une session
Response Headersview source
Connection:close
Content-Length:0
Location:https://ent.enteduc.fr/
Set-Cookie:cadata6A45CD714D774496A399F96AC521E21E....

1 个答案:

答案 0 :(得分:0)

您的代码没有任何问题。有用。我尝试了你提供的默认用户名和密码。这就是该网站所做的......

  • 您成功登录并将HTTP 302发送到路径/并且还为您提供了一个标识您的cookie。

HTTP/1.1 302 Moved Temporarily Location: https://ent.enteduc.fr/ Set-Cookie: XXX

  • 浏览器请求/,服务器响应另一个HTTP 302

HTTP/1.1 302 Found Connection: Keep-Alive Location: /etabs/0680001F/Pages/Accueil.aspx

  • 请求/etabs/0680001F/Pages/Accueil.aspx会产生200 OK,其中包含用法语写的HTML内容。 Excusez moi! Je ne parle pas francais。

更改您的代码以遵循重定向并在每一步设置Cookie,您应该没问题。

[编辑]

如果您已完成,请删除您在此信息中提供的身份验证信息。