OSDN Git Service

logoutメソッドの追加.
authoryuki <yuki@bdf3b611-c98c-6041-8292-703d9c9adbe7>
Sat, 5 Jan 2008 10:23:42 +0000 (10:23 +0000)
committeryuki <yuki@bdf3b611-c98c-6041-8292-703d9c9adbe7>
Sat, 5 Jan 2008 10:23:42 +0000 (10:23 +0000)
git-svn-id: http://192.168.11.7/svn/repository/NicoBrowser@15 bdf3b611-c98c-6041-8292-703d9c9adbe7

src/nicobrowser/NicoHttpClient.java
test/nicobrowser/NicoHttpClientTest.java

index 4f38a5e..f5bd1ed 100644 (file)
@@ -5,7 +5,9 @@ import java.io.IOException;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpStatus;
 import org.apache.commons.httpclient.cookie.CookiePolicy;
+import org.apache.commons.httpclient.methods.GetMethod;
 import org.apache.commons.httpclient.methods.PostMethod;
 
 /**
@@ -17,6 +19,8 @@ public class NicoHttpClient extends HttpClient {
     static NicoHttpClient instance;
     private static final String LOGIN_PAGE =
             "https://secure.nicovideo.jp/secure/login?site=niconico";
+    private static final String LOGOUT_PAGE =
+            "https://secure.nicovideo.jp/secure/logout";
 
     private NicoHttpClient() {
         super();
@@ -45,17 +49,39 @@ public class NicoHttpClient extends HttpClient {
             post.addParameter("password", password);
             post.addParameter("next_url", "");
             post.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
-            executeMethod(post);
+            int statusCode = executeMethod(post);
+            Logger.getLogger(NicoHttpClient.class.getName()).
+                    log(Level.INFO, "ログインステータスコード: " + statusCode);
 
             // ログイン可否の判定.
             // x-niconico-authflagで判定できそうだったが必ず0になる...
             // Set-Cookieがあればログインできたとみなしているが,あまりよろしくないかも.
             auth = (null != post.getResponseHeader("Set-Cookie")) ? true : false;
         } catch (IOException ex) {
-            Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex);
+            Logger.getLogger(NicoHttpClient.class.getName()).log(Level.SEVERE, null, ex);
         } finally {
             post.releaseConnection();
         }
         return auth;
     }
+
+    public void loadMyList(String listNo) {
+
+    }
+
+    public boolean logout() {
+        boolean result = false;
+        GetMethod method = new GetMethod(LOGOUT_PAGE);
+        try {
+            int statusCode = executeMethod(method);
+            if (statusCode == HttpStatus.SC_OK) {
+                result = true;
+            }
+        } catch (IOException ex) {
+            Logger.getLogger(NicoHttpClient.class.getName()).log(Level.SEVERE, null, ex);
+        } finally {
+            method.releaseConnection();
+        }
+        return result;
+    }
 }
index 0b61f64..1406f5c 100644 (file)
@@ -68,4 +68,27 @@ public class NicoHttpClientTest {
         result = instance.login(mail, password);
         assertEquals(true, result);
     }
+
+    @Test
+    public void logout() {
+        System.out.println("logout");
+
+        boolean result;
+        result = NicoHttpClient.getInstance().logout();
+        assertEquals(true, result);
+
+        result = NicoHttpClient.getInstance().logout();
+        assertEquals(true, result);
+    }
+
+    @Test
+    public void loadMyList() {
+        System.out.println("loadMyList");
+        
+        NicoHttpClient instance = NicoHttpClient.getInstance();
+        
+        instance.logout();
+
+
+    }
 }