我与android的网站上的授权不起作用。我首先使用Chrome控制台调查了网站的请求。我与Android的网站上的授权不起作用
在网页https://school.proServer.ru/?next=/diary/
上有一个授权窗口。我填写了登录名和密码字段,然后点击“登录”。 Chrome的控制台信息:
下一个= /日志/
一般
请求URL:https://school.proServer.ru/?next=/diary/
请求方法:POST 状态代码:302 FOUND 远程地址:94 ..... 推荐人政策:不推荐使用何时降级
响应头
访问控制允许来源:* 缓存控制:最大年龄= 0 连接:保活 的Content-Type:text/html的; charset = utf-8 日期:2017年5月14日(星期日)17:59:37 GMT 到期时间:2017年5月14日星期日17:59:38 GMT 最后修改:2017年五月14日(星期日)17:59:38 GMT 地点:https://school.proServer.ru/diary/
...
请求头
接受:text/html的,是application/xhtml + xml的,应用/ XML; q = 0.9,image/webp,/; q = 0.8 Accept-Encoding:gzip,deflate,br Accept-Language:ru-RU,ru; q = 0.8,en-US; q = 0.6,en; q = 0.4 ...的Referer :https://school.proServer.ru/?next=/diary/
表单数据
csrfmiddlewaretoken:nybZEyn8GhJWV4om8TFx1uXK4iRebjKl
index_page_view-CURRENT_STEP:AUTH
AUTH-用户名名称:myusername
认证密码:MYPASSWORD
下一页在控制台
日记/
一般 请求URL:https://school.proServer.ru/diary/
请求方法:GET 状态代码:200 OK 远程地址:94.41.0.7:443 推荐人政策:不推荐何时降级
响应头 连接:保持活动 Content-Type:text/html; charset = utf-8 Set-Cookie:...
请求头 接受:text/html的,应用/ XHTML + xml的,应用/ XML; Q = 0.9,图像/ WEBP,/; Q = 0.8 接受编码:gzip,放气,BR Accept-Language:ru-RU,ru; q = 0.8,en-US; q = 0.6,en; q = 0.4 Cache-Control:max-age = 0 Connection:keep-alive Cookie:...
我的代码(我得到一个令牌):
try {
Connection.Response res1 = Jsoup.connect("https://school.proServer.ru")
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36")
.header("Content-Type", "application/x-www-form-urlencoded")
.data("next", "/diary/")
.method(Connection.Method.GET)
.execute();
Document welcomePage = res1.parse();
welcomCookies = res1.cookies();
Element input = welcomePage.select("input[name=csrfmiddlewaretoken]").first();
token = input.attr("value");
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("token " + token);
System.out.println("welcomCookies " + welcomCookies.toString());
而且我的授权:发生
try {
Connection.Response res = Jsoup
.connect("https://school.proServer.ru/?next=/diary/")
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36")
.header("Content-Type", "application/x-www-form-urlencoded")
.followRedirects(true)
.header("Access-Control-Allow-Origin", "*")
.timeout(7000)
.data("auth-username", log)
.data("auth-password", pass)
.data("index_page_view-current_step", "auth")
.data("csrfmiddlewaretoken", token)
.method(Connection.Method.POST)
.cookies(welcomCookies)
.execute();
System.out.println(res.url());
}
} catch (IOException e) {
e.printStackTrace();
}
}
错误:
org.jsoup.HttpStatusException: HTTP error fetching URL. Status=403, URL= https://school.proServer.ru/?next=/diary/
请帮帮我!
也许'next =/diary /'必须被编码? –
如何做到这一点?如何更正请求? – perepelka
'“https://school.proServer.ru/?next=”+ URLEncoder.encode(“/ diary /”,“UTF-8”)' –