Lorsque vous accédez à une URL à l'aide de Java, si l'URL nécessite une authentification, elle ne peut pas être accessible directement car il n'y a pas de connexion. Alors, comment résoudre ce problème?
La méthode consiste à utiliser Java pour simuler la connexion, à enregistrer les informations sur les cookies après la connexion et à envoyer le cookie pour indiquer l'identité la prochaine fois que vous lancez une demande, afin que vous puissiez accéder à l'URL avec des autorisations.
Ce qui suit est la première étape pour introduire l'utilisation de Java pour simuler la connexion.
// Adresse de connexion (obtenue en lisant le code source HTML, c'est-à-dire l'URL soumis par le formulaire de connexion) String surl = "http://login.goodjobs.cn/index.php/action/userlogin"; / ** * Tout d'abord, vous devez parler à l'URLConnection sous l'URL. L'URLConnection peut être facilement obtenue à partir des URL. Par exemple: // Utilisation * java.net.url et //java.net.urlconnection * / url url = new URL (Surl); HttpurlConnection Connection = (httpurlConnection) url.openconnection (); / ** * Définissez ensuite la connexion en mode de sortie. L'URLConnection est généralement utilisée comme entrée, comme le téléchargement d'une page Web. * En définissant URLConnection sur la sortie, vous pouvez transférer des données sur votre page Web. Voici comment le faire: * / connection.SetDoOutput (true); / ** * Enfin, afin d'obtenir OutputStream, pour plus de simplicité, la contraignez dans l'écrivain et la mettez dans les informations de publication, par exemple: ... * / outputStreamWriter out = new OutputStreamWriter (connection .getOutputStream (), "gbk"); // Le nom de membre et le mot de passe sont également connus en lisant le code HTML, c'est-à-dire que le nom du paramètre correspondant dans le formulaire est Out.Write ("MemberName = MyMemberName & Password = MyPassword"); // La clé à publier est! // N'oubliez pas de nettoyer.flush (); out.close (); // Obtenir un cookie équivaut à l'enregistrement de l'identité, et il est utilisé pour l'utilisation de String Cookieval = Connection.geTheaderField ("Set-Cookie");Après avoir enregistré avec succès, vous pouvez accéder à d'autres URL.
String s = "http://user.goodjobs.cn/dispatcher.php/module/resume/action/preview"; // rouvrir une URL de connexion = nouvelle URL (s); HttpurlConnection remeconnection = (httpurlconnection) url .openconnection (); if (Cookieval! = null) {// Envoyez des informations sur les cookies pour indiquer votre identité, sinon vous serez considéré comme n'aurez aucune permission de résumer.setRequestProperty ("Cookie", Cookieval); } resumeconnection.connect (); InputStream urlStream = remeConnection.getInputStream (); BufferedReader BufferedReader = new BufferedReader (new InputStreamReader (URLStream)); String ss = null; String total = ""; while ((ss = bufferedReader.readline ())! = null) {total + = ss; } Ioutils.write (total, nouveau fileoutputStream ("d: /index.html")); BufferedReader.Close (); Grâce à la méthode ci-dessus, vous pouvez accéder à l'URL avec un contrôle d'autorisation. L'idée est: Simuler la connexion, obtenir un cookie pour enregistrer votre identité et envoyer un cookie pour indiquer votre identité lors de la demande de la prochaine fois.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.