在C#中,HttpClient
?類是一個非常強大的工具,用于在應用程序中發送HTTP請求和接收HTTP響應。它支持多種數據格式,這些格式主要通過請求的Content
屬性和響應的Content
屬性來處理。下面是一些HttpClient
支持的主要數據格式及其處理方式:
1、文本(如JSON, XML, 純文本)
var json = JsonConvert.SerializeObject(yourObject);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync("http://example.com/api/resource", content);
2、表單數據
var content = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("key1", "value1"),
new KeyValuePair<string, string>("key2", "value2")
});
var response = await httpClient.PostAsync("http://example.com/api/resource", content);
3、二進制數據(如文件)
var fileContent = new ByteArrayContent(File.ReadAllBytes("path_to_file"));
fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
{
Name = "\"file\"",
FileName = "\"filename.txt\""
};
fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("text/plain");
var content = new MultipartFormDataContent();
content.Add(fileContent, "file", "filename.txt");
var response = await httpClient.PostAsync("http://example.com/api/upload", content);
4、接收響應
文本:使用ReadAsStringAsync
方法將響應體讀取為字符串。
二進制:使用ReadAsByteArrayAsync
方法將響應體讀取為字節數組,或者使用ReadAsStreamAsync
獲取響應的流,以便進一步處理(如保存到文件)。
自動反序列化:對于JSON等格式的響應,可以使用如JsonConvert.DeserializeObject<T>
(來自Newtonsoft.Json或System.Text.Json)的方法將響應字符串反序列化為C#對象。
每種數據格式的選擇取決于你的具體需求,包括你需要發送的數據類型、接收數據的客戶端或服務器的期望格式等。HttpClient
通過其靈活的API支持多種數據格式,使得在C#應用程序中發送和接收HTTP請求變得簡單而強大。
該文章在 2024/9/4 17:33:50 編輯過