Exemplo n.º 1
0
        /// <summary>
        /// ログインする
        /// </summary>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        public async Task LoginAsync(string username, string password)
        {
            //二重ログイン回避
            if (NicoHttp.IsLogin)
            {
                return;
            }

            var store     = new Store::Store().GetData();
            var loginData = new Dictionary <string, string>()
            {
                { "mail", username },
                { "password", password }
            };

            var logger = NicoLogger.GetLogger();

            logger.Debug("ログインを試行", moduleName);
            HttpResponseMessage res = await Client.PostAsync(store.GetNicoLoginAddress(), new FormUrlEncodedContent(loginData));

            if (res.IsSuccessStatusCode && !res.Headers.Contains("Set-Cookie"))
            {
                logger.Log("ログインに成功しました。");
                NicoHttp.IsLogin = true;
            }
            else
            {
                throw new HttpRequestException($"ログインに失敗しました。パスワード・ユーザー名を確認して下さい。(status_code: {(int)res.StatusCode})");
            }

            logger.Debug($"username: {username} , pass: {Regex.Replace(password, ".", "●")}", moduleName);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 非同期にページを取得する
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task <string> GetPageAsync(string id)
        {
            var logger = NicoLogger.GetLogger();
            var store  = new Store::Store().GetData();

            logger.Debug($"ページの取得を開始({id})", moduleName);
            var res = await Client.GetAsync($"{store.GetPageAddress(id)}");

            if (res.IsSuccessStatusCode)
            {
                logger.Debug("ページの取得が完了", moduleName);
                return(await res.Content.ReadAsStringAsync());
            }
            else
            {
                throw new HttpRequestException($"コンテンツの取得に失敗しました。(id: {id}, status_code: {(int)res.StatusCode})");
            }
        }