2016-04-14 39 views
-1

在過去,我做了一個階段,在上分流請求。現在,我創建了一個dll包括這種方法,這是我想對這個庫轉換的代碼:如何使用Microsoft.Net.Http上傳數據?

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

在不移植庫System.Net我可以叫client.UploadData,但在這裏,我看到的只是: postAsync和putAsync,有一種獨立於putpost請求的方法允許我將數據從client發送到server?提前致謝。

回答

1

在您的舊代碼中,您使用了一些傳入參數method的方法,以UploadData方法發送數據,並且可能是POSTPUT。如果您未指定UploadData的方法,則正在使用POST。所以你應該使用PostAsyncPutAsync,根據你當前的代碼和method參數的值傳遞給UploadData

最簡單的方法是使用這樣的:

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

的把代碼是相同的,但PutAsJsonAsync

+0

明白了,我可以在這裏找到一些例子嗎? – Sandokan

+0

有一個'HttpClient'的擴展方法:'PostAsJsonAsync'和'PutAsJsonAsync'。你可以在MSDN上找到它:https://msdn.microsoft.com/en-us/library/hh944521(v=vs.118).aspx和https://msdn.microsoft.com/en-us/library/ system.net.http.httpclientextensions.putasjsonasync(v = vs.118)的.aspx – tdragon

1

在HTTP請求中,PUT和POST是將數據傳輸到服務器的正確方法,發送獨立於這些方法的數據沒有任何意義。當你使用像System.Net這樣的客戶端時,這只是被抽象出來。

+0

當然是一個很好的角度考慮你的,但在舊代碼我發送的數據與請求無關。 – Sandokan

相關問題