「C#」でニコニコにログインする方法についてソースコード付きでまとめました。
## サイトにログイン
C#を用いて、ニコニコ動画にログインし、ログイン後のページのHTMLを取得します。
– | Basic認証の概要 |
---|---|
詳細 | ■「「Form認証」「Basic認証」の違い |
## サンプルコード
サンプルプログラムのソースコードです。
using System; using System.IO; using System.Net; using System.Text; using System.Collections; namespace ConsoleApplication1 { public class Program { static void Main() { // ユーザーIDとパスワード string userid = "mail@address"; string password = "password"; // ログイン画面へのアクセスパラメータ Hashtable vals = new Hashtable(); vals["next_url"] = ""; vals["mail"] = userid; vals["password"] = password; // POSTされるURL(ログインボタン押下時) string url = "https://secure.nicovideo.jp/secure/login?site=niconico"; // パラメータを"param1=value1¶m2=value2"の形にまとめる string param = ""; foreach (string k in vals.Keys) { param += String.Format("{0}={1}&", k, vals[k]); } byte[] data = Encoding.ASCII.GetBytes(param); // HTTP POSTリクエストの作成 CookieContainer cc = new CookieContainer(); //認証用クッキーを格納するコンテナ HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; req.ContentLength = data.Length; req.CookieContainer = cc; // POSTを実行 Stream reqStream = req.GetRequestStream(); reqStream.Write(data, 0, data.Length); reqStream.Close(); //レスポンスを取得 WebResponse res = req.GetResponse(); Stream resStream = res.GetResponseStream(); Encoding encoder = Encoding.GetEncoding("UTF-8"); StreamReader sr = new StreamReader(resStream, encoder); string result = sr.ReadToEnd(); sr.Close(); resStream.Close(); //ログイン後のHTMLを表示 Console.WriteLine(result); // HTTP GETでアクセス(マイページURL) url = "http://www.nicovideo.jp/my/top"; // HTTP GET リクエストの作成 req = (HttpWebRequest)WebRequest.Create(url); req.CookieContainer = cc;//取得済みのクッキーコンテナ res = req.GetResponse(); resStream = res.GetResponseStream(); sr = new StreamReader(resStream, encoder); result = sr.ReadToEnd(); sr.Close(); resStream.Close(); //マイページのHTMLを表示 Console.WriteLine(result); } } }
– | 関連ページ |
---|---|
1 | ■C#によるWEBサイトへのログイン方法(ベーシック認証、クッキー認証) |
2 | ■【C#】画像処理入門 |
3 | ■【C#入門】基礎文法とサンプル集 |
コメント