public async Task LoginAsync(string email, string password) { var loginPageHtml = await httpClient.GetStringAsync(@"https://mixi.jp/"); var postKey = new LoginPostKeyParser().Parse(loginPageHtml); var uri = new Uri(@"https://mixi.jp/login.pl?from=login1"); var content = new FormUrlEncodedContent(new Dictionary <string, string> { { "email", email }, { "password", password }, { "post_key", postKey }, { "next_url", "/home.pl" }, }); var result = await httpClient.PostAsync(uri, content); var resultContent = await result.Content.ReadAsStringAsync(); if (resultContent.Contains("より安全にご利用いただくため、いつもと違う環境からログインする場合、生年月日の確認を行っております。")) { var additionalResult = await AdditionalLogin(resultContent); SetHeader2Cookie(additionalResult); } else { SetHeader2Cookie(result); } }
public void ParseTest() { // ログイン完了前の「https://mixi.jp/」をダウンロードしてhtmlディレクトリに配置してから実行する var html = File.OpenText("html/root.html").ReadToEnd(); var parser = new LoginPostKeyParser(); parser.Parse(html).IsNotEmpty(); }