###前提・実現したいこと
Java Apache4.5.2を使用して
ニコニコ動画にログインを試みているのですが、うまく行きません
また、警告: Invalid cookie headerの意味も掴みかねています
Apacheもバージョンごとに方式が変わっており、参考資料も少なく、
ご教示いただけないでしょうか。
###発生している問題・エラーメッセージ
4
1警告: Invalid cookie header: "Set-Cookie: nicosid=1460272387.1433545994; Max-Age=315360000; Expires=Wed, 08 Apr 2026 07:13:07 GMT; Path=/; Domain=.nicovideo.jp". Invalid 'expires' attribute: Wed, 08 Apr 2026 07:13:07 GMT 24 10, 2016 4:13:36 午後 org.apache.http.client.protocol.ResponseProcessCookies processCookies 3警告: Invalid cookie header: "Set-Cookie: user_session_secure=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; Max-Age=2591999; Expires=Tue, 10 May 2016 07:13:06 GMT; Path=/; Domain=.nicovideo.jp; Secure; HTTPOnly". Invalid 'expires' attribute: Tue, 10 May 2016 07:13:06 GMT 44 10, 2016 4:13:36 午後 org.apache.http.client.protocol.ResponseProcessCookies processCookies 5警告: Invalid cookie header: "Set-Cookie: user_session=xxxxxxxxxxxxxxxxxxxxxxxxxxxx; Max-Age=2591999; Expires=Tue, 10 May 2016 07:13:06 GMT; Path=/; Domain=.nicovideo.jp". Invalid 'expires' attribute: Tue, 10 May 2016 07:13:06 GMT 64 10, 2016 4:13:36 午後 org.apache.http.client.protocol.ResponseProcessCookies processCookies 7警告: Invalid cookie header: "Set-Cookie: user_session=deleted; Max-Age=-1073741821; Expires=Thu, 01 Apr 1982 17:36:06 GMT; Path=/". Invalid 'expires' attribute: Thu, 01 Apr 1982 17:36:06 GMT 8HttpResponseProxy{HTTP/1.1 302 Found [Server: nginx 9 Date: Sun 10 10 Apr 2016 07:13:07 GMT 11 Content-Length: 0 12 Connection: close 13 Cache-Control: no-cache 14 Content-Language: ja 15 Expires: -1 16 Location: http://www.nicovideo.jp/ 17 Pragma: no-cache 18 Set-Cookie: nicosid=1460272387.1433545994; Max-Age=315360000; Expires=Wed 19 08 Apr 2026 07:13:07 GMT; Path=/; Domain=.nicovideo.jp 20 Set-Cookie: user_session_secure=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; Max-Age=2591999; Expires=Tue 21 10 May 2016 07:13:06 GMT; Path=/; Domain=.nicovideo.jp; Secure; HTTPOnly 22 Set-Cookie: user_session=user_session_xxxxxxxxxxxxxxxxxxxxxxxxxxxx; Max-Age=2591999; Expires=Tue 23 10 May 2016 07:13:06 GMT; Path=/; Domain=.nicovideo.jp 24 Set-Cookie: user_session=deleted; Max-Age=-1073741821; Expires=Thu 25 01 Apr 1982 17:36:06 GMT; Path=/ 26 X-Content-Type-Options: nosniff 27 X-Frame-Options: SAMEORIGIN 28 X-Nico-Account-Authentication: 2 29 x-niconico-authflag: 0 30 X-niconico-sid: 1460272387.1433545994] [Content-Length: 0 31Chunked: false]}
###該当のソースコード
Java
1 2import java.net.URI; 3import java.util.ArrayList; 4 5import org.apache.http.HttpResponse; 6import org.apache.http.NameValuePair; 7import org.apache.http.client.HttpClient; 8import org.apache.http.client.entity.UrlEncodedFormEntity; 9import org.apache.http.client.methods.HttpPost; 10import org.apache.http.impl.client.HttpClientBuilder; 11import org.apache.http.message.BasicNameValuePair; 12 13public class Test { 14 public static void main(String[] args) { 15 try { 16 URI loginURI = new URI("https://account.nicovideo.jp/api/v1/login?show_button_twitter=1&site=niconico&show_button_facebook=1&next_url="); 17 String mail = "xxxx@xxx.jp"; 18 String pass = "xxxxxxxx"; 19 20 //POST先の設定 21 HttpPost httppost = new HttpPost(loginURI); 22 23 //POST用パラメータの設定 24 ArrayList<NameValuePair> parameters = new ArrayList<NameValuePair>(); 25 parameters.add(new BasicNameValuePair("mail_tel", mail)); 26 parameters.add(new BasicNameValuePair("password", pass)); 27 httppost.setEntity(new UrlEncodedFormEntity(parameters,"UTF-8")); 28 29 //POST実行 30 HttpClient httpclient = HttpClientBuilder.create().build(); 31 HttpResponse httpresponse = httpclient.execute(httppost); 32 33 //POST結果 34 String response1 = httpresponse.toString(); 35 String response2 =""; 36 for (String str : response1.split(",",0)){ 37 response2 += str+"\n"; 38 } 39 40 System.out.println(response2); 41 42 } catch (Exception e) { 43 e.printStackTrace(); 44 } 45 } 46} 47 48
###試したこと
調べたところ、レスポンスヘッダのx-niconico-authflag が 0 以外になれば
ログイン成功の証明らしいのですが、色々試しても変わらず。
SSL通信だからかと思い、
こちらのサイト(http://www.gadgety.net/shin/java/httpclient.html)を参考にして試してみましたが結果は同じでした。
###補足情報(言語/FW/ツール等のバージョンなど)

回答2件
あなたの回答
tips
プレビュー