From 76c5cdd341ea2316bb839fdca57c132d21776020 Mon Sep 17 00:00:00 2001 From: yukihane Date: Sat, 17 Sep 2011 22:59:24 +0900 Subject: [PATCH] =?utf8?q?=E3=82=BB=E3=83=83=E3=82=B7=E3=83=A7=E3=83=B3?= =?utf8?q?=E3=81=8C=E6=9C=89=E5=8A=B9=E3=81=8B=E3=81=A9=E3=81=86=E3=81=8B?= =?utf8?q?=E3=81=AE=E7=A2=BA=E8=AA=8D=E3=83=A1=E3=82=BD=E3=83=83=E3=83=89?= =?utf8?q?=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/nicobrowser/NicoHttpClient.java | 41 +++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/src/nicobrowser/NicoHttpClient.java b/src/nicobrowser/NicoHttpClient.java index c480809..0c0423a 100644 --- a/src/nicobrowser/NicoHttpClient.java +++ b/src/nicobrowser/NicoHttpClient.java @@ -50,6 +50,7 @@ import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang.ArrayUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpException; import org.apache.http.HttpHost; @@ -59,6 +60,7 @@ import org.apache.http.NameValuePair; import org.apache.http.client.CookieStore; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpHead; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.params.ClientPNames; import org.apache.http.client.params.CookiePolicy; @@ -89,15 +91,14 @@ public class NicoHttpClient { "https://secure.nicovideo.jp/secure/login?site=niconico"; private static final String LOGOUT_PAGE = "https://secure.nicovideo.jp/secure/logout"; - private static final String WATCH_PAGE = "http://www.nicovideo.jp/watch/"; - private static final String MY_LIST_PAGE_HEADER = - "http://www.nicovideo.jp/mylist/"; - private static final String MOVIE_THUMBNAIL_PAGE_HEADER = - "http://ext.nicovideo.jp/api/getthumbinfo/"; - private static final String GET_FLV_INFO = "http://www.nicovideo.jp/api/getflv/"; - private static final String SEARCH_HEAD = "http://www.nicovideo.jp/"; - private static final String ADD_MYLIST_PAGE = "http://www.nicovideo.jp/mylist_add/video/"; - private static final String GET_THREAD_KEY_PAGE = "http://www.nicovideo.jp/api/getthreadkey?thread="; + private static final String NICOVIDEO_HOME_URL = "http://www.nicovideo.jp"; + private static final String WATCH_PAGE = NICOVIDEO_HOME_URL + "/watch/"; + private static final String MY_LIST_PAGE_HEADER = NICOVIDEO_HOME_URL + "/mylist/"; + private static final String MOVIE_THUMBNAIL_PAGE_HEADER = "http://ext.nicovideo.jp/api/getthumbinfo/"; + private static final String GET_FLV_INFO = NICOVIDEO_HOME_URL + "/api/getflv/"; + private static final String SEARCH_HEAD = NICOVIDEO_HOME_URL + "/"; + private static final String ADD_MYLIST_PAGE = NICOVIDEO_HOME_URL + "/mylist_add/video/"; + private static final String GET_THREAD_KEY_PAGE = NICOVIDEO_HOME_URL + "/api/getthreadkey?thread="; public NicoHttpClient() { http = new DefaultHttpClient(); @@ -163,6 +164,28 @@ public class NicoHttpClient { } /** + * ニコニコ動画サービスへアクセスし有効なセッションかどうかを試します. + * @return 有効なセッションであればtrue. + */ + public boolean challengeAuth() throws IOException { + final HttpHead head = new HttpHead(NICOVIDEO_HOME_URL); + HttpResponse response = null; + try { + response = http.execute(head); + final Header authFlag = response.getFirstHeader("x-niconico-authflag"); + // 0:expired, 1:normal user, 3:premium user + if ("0".equals(authFlag.getValue())) { + return false; + } + return true; + } finally { + if (response != null) { + EntityUtils.consume(response.getEntity()); + } + } + } + + /** * ニコニコ動画からログアウトする. * @return ログアウトに成功すればtrue. */ -- 2.11.0