Вызов веб-api в коде C# позади
Мне нужно вызвать web APi из кода c# позади. Это моя функция, добавленная в мой код
private async void GetToken() { using (HttpClient client = new HttpClient()) { var request_json = "your json string"; HttpContent content = new StringContent(request_json, Encoding.UTF8, "application/json"); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Integration", "bhtrdimh="); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var httpResponseMessage = await client.PostAsync("https://xxx.xx.com/xx/xx/token", content); var r = await httpResponseMessage.Content.ReadAsStringAsync(); } }
После использования этого кода я получаю ошибку
Severity Code Description Project File Line Suppression State Error CS1061 'Task<HttpResponseMessage>' does not contain a definition for 'GetAwaiter' and no extension method 'GetAwaiter' accepting a first argument of type 'Task<HttpResponseMessage>' could be found (are you missing a using directive or an assembly reference?) CheckboxWeb C:\Project\RogerDev1\CBE\survey-platform\CheckboxWeb\Forms\Surveys\Invitations\NBVUserlink.aspx.cs 194 Active
Я не понимаю, где в моей проблеме.
Может ли кто-нибудь сделать этот тип работы, тогда, пожалуйста, направьте меня с некоторым образцом кода.
Заранее спасибо
Что я уже пробовал:
поиск в google но подходящего ответа не нашел что мне поможет
Vincent Maverick Durano
Какую версию .NET вы используете?
Member 13907608
спасибо за ответ
теперь я меняю свой код
как показано ниже
используя (ВАР клиент = новый система.Нет.Протоколу HTTP.С помощью HttpClient())
{
клиент.BaseAddress = новый Uri("https://xxx.xxx.com");
клиент.DefaultRequestHeaders.Принимать.Четкий();
HttpContent content = new StringContent(request_json, Encoding.UTF8, "application/json");
клиент.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("интеграция", "bmcEpOm0=");
клиент.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = клиент.PostAsync("внешний/xxx/токен", контент).Результат;
если (ответ.IsSuccessStatusCode)
{
строка responseString = ответ.Содержание.ReadAsStringAsync().Результат;
Newtonsoft.В формате JSON.В LINQ.Создание экземпляра в формате JSON = Newtonsoft.В формате JSON.В LINQ.Создание экземпляра.Синтаксический анализ(responseString);
}
}
теперь это возвращение плохой просьбы
Vincent Maverick Durano
Неверный запрос указывает на то, что сервер не смог понять запрос из-за неверного синтаксиса или запрос был неправильно сформирован. Другими словами, поток данных, отправленный клиентом на сервер, не соответствовал правилам. Пожалуйста, дважды проверьте URL-адрес вашей конечной точки.
Member 13907608
Спасибо, проблема решена. Это была моя вина.
На самом деле api принимает get, и я отправляю post . Вот почему получение ошибки
ZurdoDev
Пожалуйста, опубликуйте это решение, чтобы оно больше не оставалось без ответа.
Vincent Maverick Durano
рад, что ты взялся за работу. Пожалуйста, разместите это решение в качестве ссылки для будущих читателей. Спасибо!