Размещение запроса на вход в систему для очистки данных в C # - PullRequest
0 голосов
/ 27 июня 2019

Я хочу войти на сайт моей школы, используя C #, чтобы очистить некоторые данные, но я не уверен, как это сделать. URL: https://www.lectio.dk/lectio/31/default.aspx ("log ind" приведет вас к экрану входа).

Итак, я перепробовал довольно много вещей, но, насколько я понимаю, я должен сначала сделать GET, чтобы сохранить некоторые куки для возможного POST, содержащего информацию для входа. После завершения процедуры POST мой HTTPClient сможет отправлять запросы http для получения информации. Я не уверен, что понял / выполнил это правильно все же. Вот мой код.

var baseAdress = new Uri("https://www.lectio.dk/lectio/31/");
            var cookieContainer = new CookieContainer();
            using (var handler = new HttpClientHandler() { CookieContainer = cookieContainer, UseCookies = true})
            using (var client = new HttpClient(handler) { BaseAddress = baseAdress })
            {
                var homePageResult = client.GetAsync("login.aspx");
                homePageResult.Result.EnsureSuccessStatusCode();

                var content = new FormUrlEncodedContent(new[]
                {


                    //information hidden for privacy reasons
                    new KeyValuePair<string, string>("m%24Content%24username2","username"),
                    new KeyValuePair<string,string>("m%24Content%24passwordHidden", "password"),

                });
                var loginResult = client.PostAsync("login.aspx", content).Result;
                loginResult.EnsureSuccessStatusCode();
                //'forside' means frontpage in danish
                Stream responseStream = client.GetStreamAsync("forside.aspx").Result;
                using(StreamReader reader = new StreamReader(responseStream))
                {
                    Console.WriteLine(reader.ReadToEnd());

                }
            }

Я ожидаю увидеть ответ от фактического https://www.lectio.dk/lectio/31/forside.aspx,, который доступен только при входе в систему, но кажется, что POST не удается войти, так что я получаю ответ только от / login.aspx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...