Работа с сетью в С# с помощью класса HttpClient
Доброго времени суток! В данной статье мы рассмотрим с Вами основы работы с сетью Интертнет в C#. Для этой цели мы будем использовать
высокоуровневый класс HttpClient.
В приведенных примерах мы создадим простые запросы GET и POST.
Протокол передачи гипертекста (HTTP) — это прикладной протокол для распределенных информационных систем.
HTTP — это основа передачи данных для Всемирной паутины.
HttpClient — это базовый класс для отправки HTTP-запросов и получения HTTP-ответов от ресурса, идентифицируемого URI.
Методы HTTP-запроса
HTTP определяет набор методов запроса для указания желаемого действия, которое должно быть выполнено для данного ресурса.
Коды состояния Http
Коды состояния HTTP-ответа указывают, был ли успешно выполнен конкретный HTTP-запрос. Ответы сгруппированы по пяти классам:
- Информационные ответы (Informational) (100-199)
- Успешные ответы (Successful) (200-299)
- Перенаправления (Redirects) (300-399)
- Ошибки клиента (Client errors) (400-499)
- Ошибки сервера (Server errors) (500-599)
var url = "https://myrusakov.ru";
using var client = new HttpClient();
var result = await client.GetAsync(url);
Console.WriteLin(result.StatusCode);
В примере выше создается GET-запрос на сайт. Далее получаем код состояния запроса. В нашем случае должно быть.
Метод GetAsync отправляет запрос GET на указанный Uri в качестве асинхронной операции. Оператор await приостанавливает вычисление содержимого асинхронного метода до завершения асинхронной операции. Когда асинхронная операция завершается, оператор await возвращает результат операции, если таковой имеется.
C# HttpClient GET запрос
Метод GetStringAsync запрашивает представление указанного ресурса.
var url = "https://myrusakov.ru";
using var client = new HttpClient();
var content = await client.GetStringAsync(url);
// печатаем html- содержимое страницы
Console.WriteLine(content);
Таким образом, в данной статье мы рассмотрели самые базовые возможности класса HttpClient, а в следующих статьях рассмотрим другие методы этого класса.