はじめに
CookieHandlerとかCookieManagerとかあったが上手く使いこなせなかった・・・
なのでgetHeaderFieldsでCookieを取得しています。
やりたいこと
- ニコニコ動画にログインしてCookieの取得
- apiを叩いて結果取得
ソースコード(Cookie取得部分のみ)
package auth
import java.io.PrintStream
import java.net._
import javax.net.ssl.HttpsURLConnection
import scala.util.control.NonFatal
import scala.collection.JavaConversions._
/**
* Created by FScoward on 15/01/05.
*/
object NicoAuth {
def authenticate(mail: String, password: String): Option[Cookie] = {
val loginUrl = "https://secure.nicovideo.jp/secure/login?site=niconico"
try{
val connect = new URL(loginUrl).openConnection().asInstanceOf[HttpsURLConnection]
// POST可能にする
connect.setDoOutput(true)
val outputStream = connect.getOutputStream
// postするデータの作成
val postData = s"mail=$mail&password=$password"
val printStream = new PrintStream(outputStream)
// データをpostする
printStream.print(postData)
printStream.close()
// postした結果の取得
connect.getInputStream
val cookie = connect.getHeaderFields.get("Set-Cookie").filter(_.matches("user_session=user_session.*")).mkString.split(";")
// case classにぶちこむ
Option(
Cookie(
cookie(0),//.replace("user_session=", ""),
cookie(1),//.replace("expires=", ""),
cookie(2),//.replace("path=", ""),
cookie(3)//.replace("domain=", "")
))
} catch {
case NonFatal(e) => None
}
}
}
実行結果
結果の一部をデコード
765プロなんだしミリ うぽーつ オワタンゴw; 最高の娯楽・涼ちん.. ","length":"12:17","title_short":"【アイマス】歌姫ペダル PCM2013 (41)","description_short":"あけましておめでとうございます。今年も動画編集頑張っていきたいと思います。前sm25154617; ?/21(水)0:00予定マイリスト:mylist/39561422コミュ:co372085Twitter:xs...","thumbnail_style":null,"is_middle_thumbnail":true}],"count":38067,"has_ng_video_for_adsense_on_listing":true,"related_tags":["iM@S架空戦記","iM@S架空戦記シリーズ","iM@S架空戦記Part1;","iM@S架空戦記支援","iM@S架空戦記最終回リンク","iM@S架空戦記ウソPart1;","iM@S架空戦記OP;�リンク","iM@S架空戦記Part0;","iM@S架空戦記一発ネタ","iM@S架空戦記ランキング
全容