Как разобраться что чему присваивать?
Уже довольно давно, пользуюсь httpClient-ом как то так.
Просто где то взял ctrl+c / ctrl+v, или кто то подсказал, или на msdn. Работает, отлично!
А тут решил разобраться и немного переделать под свои задачи ().
И никак не могу понять, как вы понимаете, что тому же request.Content - надо / можно присвоить FormUrlEncodedContent ?
Я проваливался в классы c помощью F12 в HttpRequestMessage и в HttpContent, но что то никакой ниточки не нашёл(
using HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://***.ru");
request.Headers.Add("Origin", "https://***ru");
request.Headers.Add("Referer", "https://***.ru");
// Передаваемые данные c POST запросом
request.Content = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("key1", "value1"),
new KeyValuePair<string, string>("key2", "value2"),
});
UPD: Вопрос про - кому какой тип данных присвоить.
@A K - в первой части своего комментария правильно меня понял
Ответы (1 шт):
Свойство HttpRequestMessage.Content имеет тип System.Net.Http.HttpContent. HttpContent - это абстрактный класс. Значит, свойству Content может быть присвоен объект любого класса, который наследует абстрактный класс HttpContent.
Чтобы узнать, каких стандартных наследников предлагает .NET "из-под капота" достаточно зайти в документацию по свойству HttpRequestMessage.Content:
- ByteArrayContent — Содержимое HTTP, основанное на массиве байтов.
- FormUrlEncodedContent — Содержимое HTTP кортежей имен и значений, закодированных с помощью типа MIME application/x-www-Form-UrlEncoded.
- MultipartContent — Содержимое HTTP, которое сериализуется с помощью спецификации multipart/* Content Type.
- MultipartFormDataContent — Содержимое HTTP, закодированное с помощью типа MIME multipart/form-data.
- StreamContent — Содержимое HTTP, основанное на потоке.
- StringContent — Содержимое HTTP, основанное на строке.