2015-02-12 11 views
5

Ich habe keine Ahnung, wie JSON POST mit Httpclient,Wie posten Sie JSON mit HttpClient?

ich eine Lösung finden,

Like this

Aber ich habe Httpclient verwenden,

Ursache für Asynchron und fügen müssen Header,

dies ist mein Code unten,

eine Ahnung, wie man es beheben?

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

Antwort

7

Sie können die Methode PostAsJsonAsync verwenden, die in den Erweiterungen Baugruppen zu finden ist:

System.Net.Http.Formatting.dll 

Beispiel

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

Wenn Sie benutzerdefinierte Header auf die Anfrage hinzufügen möchten, es hinzufügen zu DefaultRequestHeaders:

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