Re[14]: Как распарсить СМИ2?
От: Sinclair Россия https://github.com/evilguest/
Дата: 06.11.24 12:59
Оценка: +1
Здравствуйте, 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).
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.