2016-04-14 20 views
-1

Geçmişte, isteğimi endpoint ürününe gönderen bir sınıf yaptım. Şimdi, bu yöntemi dahil bir dll oluşturmak, bu bu kütüphaneye dönüştürmek çalışıyorum kodudur: Ben client.UploadData çağırabilir taşınabilir değil kütüphanesinde System.Net yılındaMicrosoft.Net.Http ile veri nasıl yüklenir?

using (var client = new HttpClient()) 
{ 
    string requestJson = JsonConvert.SerializeObject(data); 
    client.DefaultRequestHeaders.Add("token", token); 
    byte[] responseArray = client. 'there is no upload data method 
    // the bottom code is of the old method 
    byte[] responseArray = client.UploadData(requestURI, method, Encoding.UTF8.GetBytes(requestJson)); 
    return Encoding.ASCII.GetString(responseArray); 
} 

, ama burada sadece bakın: postAsync ve putAsync, put veya post talebinden bağımsız olarak client'dan server ürününe veri göndermeme izin veren bir yöntem var mı? Şimdiden teşekkürler.

cevap

1

Eğer UploadData yöntemiyle veri göndermek için method parametrede geçirilen bazı yöntemi kullanılır ve muhtemelen POST veya PUT oldu. UploadData için yöntem belirtmezseniz, POST kullanılıyor. Bu nedenle, geçerli kod ve UploadData'a ilettiğiniz method parametresinin değerine bağlı olarak PostAsync veya PutAsync'u kullanmalısınız.

basit yolu böyle bir şey kullanmak olacaktır:

using(var client = new HttpClient()) 
{ 
    var response = await client.PostAsJsonAsync(requestUrl, data); 
    return await response.Content.ReadAsStringAsync(); 
} 

PUT için kod aynı olacaktır, ama PutAsJsonAsync

+0

Anladım, bu konuda bir örnek bulabilirmiyim? – Sandokan

+0

'HttpClient': PostAsJsonAsync' ve' PutAsJsonAsync' için bir uzantı yöntemi var. MSDN'de bulabilirsiniz: https://msdn.microsoft.com/en-us/library/hh944521(v=vs.118).aspx ve https://msdn.microsoft.com/en-us/library/ system.net.http.httpclientextensions.putasjsonasync (v = vs.118) .aspx – tdragon

1

Bir HTTP isteğinde PUT ve POST, verileri bir sunucuya aktarmanın doğru yolları olup, bu yöntemlerden bağımsız olarak veri göndermek mantıklı değildir. System.Net'te bulunan gibi bir istemci kullanırken, bu sadece sizden soyutlanmıştır. Eski kodunda

+0

ile Kesinlikle bakış iyi bir nokta sizin, ama içinde eski kod, istekten bağımsız olarak verileri gönderdim. – Sandokan

İlgili konular