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;
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;
"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();
}
/**
+ * ニコニコ動画サービスへアクセスし有効なセッションかどうかを試します.
+ * @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.
*/