Javaを使用してURLにアクセスする場合、URLが認証を必要とする場合、ログインがないため直接アクセスできません。それで、この問題を解決する方法は?
この方法は、Javaを使用してログインをシミュレートし、ログイン後にCookie情報を記録し、Cookieを送信して、次にリクエストを開始したときにIDを示すことです。
以下は、ログインをシミュレートするためにJavaの使用を導入するための最初のステップです。
//接続アドレス(HTMLソースコード、つまりログインフォームで送信されたURLを読み取ることで取得)string surl = "http://login.goodjobs.cn/index.php/action/userlogin"; /***最初に、URLの下のURLConnectionに相談する必要があります。 URLConnectionはURLから簡単に取得できます。例:// * java.net.url and //java.net.urlconnection */url url = new url(surl);を使用しています。 httpurlconnection connection =(httpurlconnection)url.openconnection(); /***次に、接続を出力モードに設定します。 URLConnectionは通常、Webページのダウンロードなど、入力として使用されます。 * URLConnectionを出力に設定することにより、データをWebページに転送できます。それを行う方法は次のとおりです。 */ connection.setDoOutput(true); / ** *最後に、outputStreamを取得するために、簡単にするために、それをライターに制約し、投稿情報に入れます。たとえば、... */ outputStreamWriter out = new outputStreamWriter(connection .getOutputStream()、 "gbk"); // MemberNameとパスワードは、HTMLコードを読み取ることによっても知られています。つまり、フォームの対応するパラメーター名はout.write( "membername = mymembername&password = mypassword"); //投稿するキーは! // cleanup out.flush(); out.close(); // cookieを取得することはアイデンティティの記録と同等であり、文字列cookieval = connection.getheaderfield( "set-cookie")の使用に使用されます。
正常にログインした後、他のURLにアクセスできます。
文字列s = "http://user.goodjobs.cn/dispatcher.php/module/resume/action/preview"; //接続を再開しますurl = new url(s); httpurlconnection Resumeconnection =(httpurlconnection)url .openconnection(); if(cookieval!= null){// cookie情報を送信してアイデンティティを示します。そうしないと、許可がないとみなされます。 } resumeConnection.connect(); inputstream urlstream = resumeConnection.getInputStream(); BufferedReader BufferedReader = new BufferedReader(new inputstreamReader(urlstream));文字列ss = null;文字列合計= ""; while((ss = bufferedreader.readline())!= null){total += ss; } ioutils.write(total、new fileoutputStream( "d:/index.html")); bufferedreader.close();上記の方法を介して、許可制御を備えたURLにアクセスできます。アイデアは、ログインをシミュレートし、Cookieを取得して身元を記録し、次回をリクエストするときにアイデンティティを示すためにCookieを送信します。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。