Пытаюсь авторизоваться в vk через форму. Форму распарсил, достал нужные поля. Далее составляю запрос через HttpClient:
Dictionary<string, string> parameters = new Dictionary<string, string>
{
{"email", userEmail},
{"pass", userPassword},
{"role", "al_frame"},
{"_origin", "https://vk.com"},
{"ip_h", ipH},
{"lg_h", lgH},
{"utf8", "1"},
{"expire", ""},
{"recaptcha", ""},
{"captcha_sid", ""},
{"captcha_key", ""}
};
FormUrlEncodedContent encodedContent = new FormUrlEncodedContent(parameters);
CookieContainer cookies = new CookieContainer();
//HttpClientHandler handler = new HttpClientHandler() { AllowAutoRedirect = false };
//handler.CookieContainer = cookies;
using (var handler = new HttpClientHandler() {
CookieContainer = cookies,
AllowAutoRedirect = true
})
using (HttpClient client = new HttpClient(handler))
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
Encoding.GetEncoding("windows-1251");
//client.BaseAddress = new Uri(baseUrl);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded"));
client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36");
client.DefaultRequestHeaders.Add("Referer", "https://vk.com");
client.DefaultRequestHeaders.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
HttpResponseMessage result = await client.PostAsync("https://login.vk.com/?act=login", encodedContent);
CookieCollection cookiesResp = cookies.GetCookies(new Uri(baseUrl));
foreach (Cookie cookie in cookiesResp)
{
//Console.WriteLine(cookie.ToString());
cookies.Add(new Uri(baseUrl), cookie);
}
string resultContent = await result.Content.ReadAsStringAsync();
Console.WriteLine(resultContent);
}
Console.ReadKey();
На выходе ничего не получается. Заголовки вроде как корректные, а в resultContent отдается вот такой кусок js:
Что это может быть? Как победить?
Шарпы только начал изучать. До этого, ровно такую же процедуру делал на php, там все работало корректно. Авторизация нужна именно через форму, не через API.