Cookieをかじった
Cookieをかじりました。
ええ。あのcookieですよ。
ええ。噛み切るのに時間かかりました。
今、Javaを使って
あるサイトにログインしてその中の情報を取ってくる
というのを作っています。
えっと、だからそのアプリを起動したらログインもしてくれて、
内容も確認できるというすぐれもの!
(なんかハッキングしてるみたいw)
(いや私は悪いことはしていないwとか思ってたよ)
ところでだがしかし!
そのログインに必要なパラメータは
IDとPASSWORDだけかと思ったら大間違い!
- hiddenでなんか送ってるし
- tokenとかとってちゃんとしたログインか調べてるし
- cookieってここで送んないといけないんだ−
っていう感じ。
ちょい待ち、
っていうか。
setParameterなんてものないしー
どうパラメータ渡すねんって思っていたが、
わかってきたのでメモ!
//これだけでcookieとれちゃう! CookieManager manager = new CookieManager(); CookieHandler.setDefault(manager); //URL設定 URL url = new URL("http://www.hoge.com/huga.html"); HttpURLConnection connection = (HttpURLConnection)url.openConnection(); connection.setDoOutput(true); connection.setUseCaches(false); //POSTでのパラメータ作成 connection.setRequestMethod("POST"); String parameterString = new String("parameter1=ID¶meter2=PASS&hidden=111&token=222"); //URL接続 PrintWriter printWriter = new PrintWriter(connection.getOutputStream()); printWriter.print(parameterString); printWriter.close(); //接続したサイト読み込み BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF8")); String httpSource = new String(); String str; while ( null != ( str = bufferedReader.readLine() ) ) { httpSource = httpSource + str; } // Cookie を表示したければ CookieStore store = manager.getCookieStore(); List<HttpCookie> cookies = store.getCookies(); for (int i = 0; i < cookies.size(); i++) { HttpCookie cookie = cookies.get(i); System.out.println(cookie); } bufferedReader.close(); connection.disconnect();
今日はcookieの送信方法ずっと調べてたけど
2行で済むことが判明した
もっと調べるスキルつけたいなー