2015-02-12 18 views
5

Tôi không có ý tưởng làm thế nào để POST JSON với HttpClient,Làm cách nào để đăng JSON bằng HttpClient?

Tôi tìm thấy một số giải pháp,

Like this

Nhưng tôi phải sử dụng HttpClient,

nguyên nhân của async và có thêm một tiêu đề,

đây là mã của tôi bên dưới,

bất kỳ ý tưởng nào để khắc phục sự cố?

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(); 

Trả lời

7

Bạn có thể sử dụng phương pháp PostAsJsonAsync có thể được tìm thấy trong các hội mở rộng:

System.Net.Http.Formatting.dll 

Ví dụ

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

Nếu bạn muốn thêm tiêu đề tùy chỉnh để yêu cầu, thêm nó đến DefaultRequestHeaders:

client.DefaultRequestHeaders.Add("mycustom", "header1"); 
Các vấn đề liên quan