OSDN Git Service

追加クッキーをセットするメソッド実装
authoryukihane <yukihane.feather@gmail.com>
Sat, 17 Sep 2011 11:05:06 +0000 (20:05 +0900)
committeryukihane <yukihane.feather@gmail.com>
Sun, 18 Sep 2011 03:24:22 +0000 (12:24 +0900)
src/nicobrowser/NicoHttpClient.java

index 039da8e..c480809 100644 (file)
@@ -56,6 +56,7 @@ import org.apache.http.HttpHost;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpStatus;
 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.HttpPost;
@@ -66,6 +67,7 @@ import org.apache.http.cookie.Cookie;
 import org.apache.http.entity.StringEntity;
 import org.apache.http.impl.client.DefaultHttpClient;
 import org.apache.http.impl.client.RedirectLocations;
+import org.apache.http.impl.cookie.BasicClientCookie;
 import org.apache.http.message.BasicNameValuePair;
 import org.apache.http.protocol.BasicHttpContext;
 import org.apache.http.protocol.HttpContext;
@@ -114,6 +116,17 @@ public class NicoHttpClient {
         http.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
     }
 
+    public void addCookie(Map<String, String> cookies) {
+        final CookieStore cookieStore = http.getCookieStore();
+        for (String key : cookies.keySet()) {
+            final String value = cookies.get(key);
+            final BasicClientCookie cookie = new BasicClientCookie(key, value);
+            cookie.setDomain(".nicovideo.jp");
+            cookie.setPath("/");
+            cookieStore.addCookie(cookie);
+        }
+    }
+
     /**
      * ニコニコ動画へログインする.
      * @param mail ログイン識別子(登録メールアドレス).
@@ -816,7 +829,7 @@ public class NicoHttpClient {
     public File getCommentFile(VideoInfo vi, String fileName, WayBackInfo wayback, int commentNum, boolean oldVersion)
             throws Exception {
         final EnumSet<DownloadCommentType> set = EnumSet.noneOf(DownloadCommentType.class);
-        if(oldVersion) {
+        if (oldVersion) {
             set.add(DownloadCommentType.COMMENT_OLD);
         } else {
             set.add(DownloadCommentType.COMMENT);
@@ -868,7 +881,7 @@ public class NicoHttpClient {
             final StringBuilder paramBuilder = new StringBuilder("<packet>");
 
             // COMMENTとCOMMENT_OLDは二者択一
-            if(types.contains(DownloadCommentType.COMMENT)) {
+            if (types.contains(DownloadCommentType.COMMENT)) {
                 final String param = createCommentDownloadParameter(vi, wayback, commentNum);
                 paramBuilder.append(param);
             } else if (types.contains(DownloadCommentType.COMMENT_OLD)) {
@@ -876,7 +889,7 @@ public class NicoHttpClient {
                 paramBuilder.append(param);
             }
 
-            if(types.contains(DownloadCommentType.OWNER)) {
+            if (types.contains(DownloadCommentType.OWNER)) {
                 final String param = createCommentDownloadParameter20101222(vi, true, wayback, 1000);
                 paramBuilder.append(param);
             }