2015-02-12 6 views
5

Я понятия не имею, как POST JSON с HttpClient,Как разместить JSON с HttpClient?

я найти решение,

Like this

Но я должен использовать 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(); 

ответ

7

Вы можете использовать метод PostAsJsonAsync, который можно найти в расширениях сборок:

System.Net.Http.Formatting.dll 

Пример

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

Если вы хотите добавить пользовательские заголовки запроса, добавить до DefaultRequestHeaders:

client.DefaultRequestHeaders.Add("mycustom", "header1");