Здравствуйте, Passerby, Вы писали:
P>Здравствуйте, karbofos42, Вы писали:
K>>K>>var filter = new Filter(84683, 50, 4194303);
K>>var client = new HttpClient();
K>>var response = await client.PostAsJsonAsync(@"https://smi2.ru/newdata/jsapi?action=articles", filter);
K>>
P>Не могли бы просветить по теории. Объявляется метод:
P>P>public static System.Threading.Tasks.Task<object?> GetFromJsonAsync (this System.Net.Http.HttpClient client, string? requestUri, Type type, System.Threading.CancellationToken cancellationToken = default);
P>
P>Как это объявление переходит в то, что написано вами в коде, т.е. где <object?> (или и в таком случае можно объявлять var?) т остальные параметры, кроме Uri?
1. Вы смотрите не тот метод, который приведён в коде. В коде —
PostAsJsonAsync, у него возвращаемый тип —
Task<HttpResponseMessage>. А вторым параметром идёт не Type, а
TValue value.
2. В приведённом коде в качестве TValue использован тип Filter. Никаких object? в итоге нет.
3. response будет иметь тип HttpResponseMessage (потому, что когда используется
await x, то его тип соответствует типу
x.GetAwaiter().GetResult(). У
Task<T>.GetAwaiter() возвращает
TaskAwaiter<T>,
GetResult() которого возвращает
T).