Ich versuche, eine Anfrage an eine Webseite zu stellen, die Cookies benötigt. Ich verwende HTTPUrlConnection, aber die Antwort kommt immer mit
zurück %Vor%Wie kann ich die Anfrage so machen, dass der angefragte Server denkt, dass Cookies aktiviert sind? Mein Code geht ungefähr so.
%Vor%Sie müssen dem System einen CookieHandler hinzufügen, damit es den Cookie verarbeiten kann. Vor Java 6 gibt es keine CookieHandler-Implementierung in der JRE, Sie müssen Ihre eigene schreiben. Wenn Sie auf Java 6 sind, können Sie dies tun,
%Vor%URLConnections Cookie-Handhabung ist wirklich schwach. Es funktioniert kaum. Es behandelt nicht alle Cookie-Regeln korrekt. Sie sollten Apache HttpClient verwenden, wenn Sie mit sensiblen Cookies wie Authentifizierung umgehen.
Ich denke, der Server kann bei der ersten Anfrage nicht feststellen, dass ein Client keine Cookies unterstützt. Also, wahrscheinlich sendet der Server Weiterleitungen. Versuchen Sie, Weiterleitungen zu deaktivieren:
%Vor%Dann können Sie Cookies von der Antwort erhalten und diese bei der nächsten Anfrage verwenden.
Wenn Sie nach einem Login versuchen, große Datenmengen zu scrappen, können Sie mit einem Scripting-Web-Scraper wie WebHarvest sogar besser zurechtkommen ( Ссылка ) Ich habe es in einigen meiner eigenen Projekte sehr erfolgreich eingesetzt.
Tags und Links java http-headers