我與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」)' –