如何使用C#发布带有HttpClient的JSON?

Lou*_*uis 5 c# json asynchttpclient

我不知道如何使用HttpClient POST JSON.我找到了一些解决方案,像这样,但我必须使用HttpClient,导致异步并且必须添加标头.

这是我的代码.知道怎么解决吗?

List<Order> list = new List<Order> { new Order() { Name = "CreatedTime", OrderBy = 1 } };

Queues items = new Queues { Orders = list };

var values = new Dictionary<string, string> { { "Orders", JsonConvert.SerializeObject(list) } };

var content = new FormUrlEncodedContent(values);

//HttpContent cc = new StringContent(JsonConvert.SerializeObject(items));

_msg = await _client.PostAsync(input, content);

//_msg = await _client.PostAsync(input, cc);

var response = await _msg.Content.ReadAsStringAsync();
Run Code Online (Sandbox Code Playgroud)

Pet*_*ols 10

您可以使用可在扩展程序集中找到的PostAsJsonAsync方法:

System.Net.Http.Formatting.dll
Run Code Online (Sandbox Code Playgroud)

public static async Task SendJsonDemo(object content)
{
    using(var client = new HttpClient())
    {
        var response = await client.PostAsJsonAsync("https://example.com", content);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果要向请求添加自定义标头,请将其添加到DefaultRequestHeaders:

client.DefaultRequestHeaders.Add("mycustom", "header1");
Run Code Online (Sandbox Code Playgroud)