2015-03-28 2 views
0

Я хочу заменить WebClient на HttpClient в моем коде. Какой HttpContent я должен использовать в HttpClient для замены WebClient.UploadString? Мой код WebClient:Заменить WebClient.UploadString() на HttpClient.PostAsync

string data = string.Format("name={0}&warehouse={1}&address={2}", name, shop.Warehouse.Id, shop.Address); 

using (var wc = new WebClient()) { 
    wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded"; 
    wc.Encoding = Encoding.UTF8; 

    string fullUrl = BaseUrl + url; 
    string response = wc.UploadString(fullUrl, data); 
    // ... 
} 

ответ

2

Вы можете построить свой POSTDATA и использовать его в экземпляре FormUrlEncodedContent так:

// This is the postdata 
var data = new List<KeyValuePair<string, string>>(); 
data.Add(new KeyValuePair<string, string>("Name", "test")); 

HttpContent content = new FormUrlEncodedContent(data); 

Есть решения, указанные на этой странице:

How to use System.Net.HttpClient to post a complex type?

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

HttpResponseMessage x = await httpClient.PostAsync(fullUrl, content); 
Смежные вопросы