Мой API вызывает REST API с помощью RestSharp, и код выглядит так
var runRequest = { Contains my JSON}
var client = new RestClient(".....");
var request = new RestRequest("....", Method.Post);
string AuthHeader = "...";
request.AddParameter("application/json", runRequest, ParameterType.RequestBody);
request.AddParameter("Authorization", "Bearer " + AuthHeader, ParameterType.HttpHeader);
var response = client.Execute(request); <---- {Red line showing under client}
return Ok(response);
Ошибка
Из-за этой красной линии я не могу запустить свою программу. Может кто подскажет в чем может быть дело?
Спасибо
Когда я набираю клиент, интеллект показывает клиент RestClient
хорошо, Итак, "клиент". интеллект дает мне ExecuteAsync , ExecuteGetAsync и т.д. Но не Execute.
Ошибка исчезла, поскольку ExecuteAsync принимает аргумент RestRequest. Теперь вы должны убедиться, что правильно обрабатываете асинхронный характер, ожидая его.
Но я не хочу использовать асинхронный характер, что мне тогда делать?
Вы можете заблокировать звонок, выполнив client.Execute(request).Result
. В лучшем случае это будет злоупотребление преимуществами асинхронности, в худшем вы рискуете заблокировать поток. Если это вообще возможно, я предлагаю рефакторинг для асинхронности.
@Crowcoder Хорошо, я попробую
Вы используете последнюю версию RestSharp. Все методы синхронизации устарели, так как RestSharp использует HttpClient
под капотом, а HttpClient
не имеет перегрузок синхронизации, все асинхронно.
Вы можете найти список измененных или устаревших членов RestClient
в файле документация.
Спасибо. Теперь я понял. Не могли бы вы также проверить это stackoverflow.com/questions/71568629/…
Не то чтобы я использую RestSharp, но я думаю, что вы ищете
ExecuteAsync
. Когда вы вводите «клиент», что Visual Studio показывает вам в intellisense как доступные методы?