#c# #rest #asynchronous #httpclient
Вопрос:
Я пытаюсь сделать запрос к api rest.
Моя проблема в том, что ничего не происходит, я не хочу, чтобы меня вообще казнили.
Я не получаю никаких ошибок и вообще никакого ответа.
Пожалуйста, взгляните на мой код:
using System; using System.Threading.Tasks; using System.Net.Http.Json; using System.Net.Http; namespace RescoTrello { class Program { static void Main(string[] args) { var url = "http://example.com"; var userName = "xxxx"; var passWord = "yyyy"; var credentials = "Basic " Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(userName ":" passWord)); var client = new HttpClient(); // ideally this would be created from IHttpClientFactory var request = new HttpRequestMessage(HttpMethod.Post, url); request.Headers.Add("Authorization", credentials); var jsonString = "{'Journal': 'Standard', 'Item':'23396', 'Qty':4 }"; request.Content = JsonContent.Create(jsonString); var response = Task.Run(async () =gt; { var response = await client.SendAsync(request); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine(result); }); Console.WriteLine(response.Status); } } }
Комментарии:
1. Ваш код создается не так, как было опубликовано. Но ваша вероятная проблема заключается в том, что приложение завершит работу до завершения обмена данными с сервером. Вам это понадобится
await Task.Run(...)
, и это приведет к другим изменениям, которые вам необходимо внести.2. Попробуйте добавить строку
response.Wait()
в конце.