2017-05-14 2 views
1

Meine Genehmigung auf der Website mit Android arbeitet nicht. Ich habe zuerst die Anfragen für die Website mithilfe der Chrome-Konsole untersucht.Meine Genehmigung auf der Website mit Android hat nicht funktioniert

Auf der Webseite https://school.proServer.ru/?next=/diary/ gibt es ein Autorisierungsfenster. Ich habe die Login- und Passwortfelder ausgefüllt und auf "Anmelden" geklickt. Chrome Konsole Info:

next =/Tagebuch/

Allgemeine

Anfrage URL:https://school.proServer.ru/?next=/diary/ anfordern Methode: POST Statuscode: 302 GEFUNDEN Remote Address: 94 ..... Referrer-Politik:. no-Referrer-when-Herabstufung

Antwortheader

Access-Control-Allow-Origin: * Cache-Control: max-age = 0 Verbindung: Keep-Alive Content-Type: text/html; charset = utf-8 Datum: So, 14 Mai 2017 17:59:37 GMT Läuft ab: So, 14 Mai 2017 17:59:38 GMT Zuletzt geändert: So, 14 Mai 2017 17:59:38 GMT Ort: https://school.proServer.ru/diary/ ...

Anfrageheaders

Accept: text/html, application/xhtml + xml, application/xml; q = 0.9, image/webp, /; q = 0,8 Akzeptieren-Encoding: gzip, deflate, br Akzeptieren-Sprache: ru-RU, ru; q = 0.8, de-DE; q = 0.6, en; q = 0,4 ... Referrer: https://school.proServer.ru/?next=/diary/

Daten

csrfmiddlewaretoken: nybZEyn8GhJWV4om8TFx1uXK4iRebjKl

index_page_view-CURRENT_STEP: auth

auth-Benutzername:

myusername

Auth-Kennwort: meinkennwort

Nächste Seite in Console

Tagebuch/

Allgemeine Anforderungs-URL: https://school.proServer.ru/diary/ anfordern Methode: Den Status Code: 200 OK Remote-Adresse: 94.41.0.7: 443 Referrer-Richtlinie: no-referrer-when-downgrade

Antwort-Header Verbindung: Keep-Alive Content-Type: text/html; charset = utf-8 Set-Cookie: ...

anfordern Headers Accept: text/html, application/XHTML + xml, application/xml; q = 0,9, image/webp, /; q = 0,8 Accept-Encoding: gzip, abzulassen, br Akzeptieren-Sprache: ru-RU, ru; q = 0.8, de-DE; q = 0.6, en; q = 0.4 Cache-Steuerung: max-age = 0 Verbindung: keep-alive Cookie: ...

Mein Code (I erhalten einen Token):

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()); 

Und meine Zulassung:

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(); 
} 
} 

Fehler tritt auf:

org.jsoup.HttpStatusException: HTTP error fetching URL. Status=403, URL= https://school.proServer.ru/?next=/diary/

Bitte helfen Sie mir!

+0

vielleicht 'next =/tagebuch /' muss codiert werden? –

+0

Wie geht das? Wie kann ich die Anfrage korrigieren? – perepelka

+0

'" https://school.proServer.ru/?next= "+ URLEncoder.encode ("/tagebuch/"," UTF-8 ")' –

Antwort

0

Einige der Websites funktionieren nicht, wenn der Header "referer" nicht mit der Anfrage gesendet wird. Möglicherweise erhalten Sie beim Zugriff auf diese Websites mit Jsoup einen HTTP 403-Fehler, da Jsoup standardmäßig einen leeren Wert für den Header "referer" übergibt.

Um Referrer oder "Referer" -Header festzulegen, können Sie die Referrer-Methode der Connection-Klasse verwenden. Meine Lösung - Linie in Autorisierung hinzufügen:

.referrer("https://school.proServer.ru/?next=/diary/") 
Verwandte Themen