Пример использования HttpClient для работы с запросами:
1. Подключаем пространство имён.
2. Создаём класс.
3. Создаем новый экземпляр класса.
4. Устанавливаем свойства текущ.-их методов.
5. Создаём асинхронный метод(для того, чтобы не блокировать основной поток).
5.1. Создаем новый экземпляр класса.
5.2. Добавляем тип контента(Content-Type) в заголовок.
5.3. Делаем асинхронный запрос к серверу.
5.4. Проверяем полученный код статуса запроса.
5.5. Читаем полученный ответ.
5.6. Устанавливаем значения из Json в объект класса Poster.
5.7. Получаем значение одного из свойств объекта класса Poster.
#HttpClient, #Csharp
1. Подключаем пространство имён.
using Newtonsoft.Json;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using System.IO;
2. Создаём класс.
public class Poster
{
public int Id { get; set; }
public int MovieId { get; set; }
public string Name { get; set; }
}
3. Создаем новый экземпляр класса.
private static HttpClient _httpClient = new HttpClient();
4. Устанавливаем свойства текущ.-их методов.
_httpClient.BaseAddress = new Uri("http://localhost:987456");
_httpClient.Timeout = new TimeSpan(0, 0, 30);
_httpClient.DefaultRequestHeaders.Clear();
5. Создаём асинхронный метод(для того, чтобы не блокировать основной поток).
private async Task<string> GetResourceThroughHttpRequestMessage()
{
5.1. Создаем новый экземпляр класса.
var request = new HttpRequestMessage(
HttpMethod.Get,
$"api/books/6e0drwqt/posters/{Guid.NewGuid()}");
5.2. Добавляем тип контента(Content-Type) в заголовок.
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
5.3. Делаем асинхронный запрос к серверу.
using (var response = await _httpClient.SendAsync(request))
{
5.4. Проверяем полученный код статуса запроса.
response.EnsureSuccessStatusCode();
5.5. Читаем полученный ответ.
var stream = await response.Content.ReadAsStreamAsync();
using (var streamReader = new StreamReader(stream))
{
using (var jsonTextReader = new JsonTextReader(streamReader))
{
var jsonSerializer = new JsonSerializer();
5.6. Устанавливаем значения из Json в объект класса Poster.
var poster = jsonSerializer.Deserialize<Poster>(jsonTextReader);
5.7. Получаем значение одного из свойств объекта класса Poster.
return poster.Name;
}
}
}
}
#HttpClient, #Csharp