摘要:[WebAPI]使用HttpClient呼叫WebAPI以上傳檔案
上傳檔案到Web API中
要上傳檔案到Web API中,一個簡單直接的方式,就是把檔案夾在HttpRequest的Content中,再透過HttpPost或HttpPut等方法叫用Web API。
所謂的把檔案夾在HttpRequest的Content中,就是把要處理的資料,包括字串、日期、數字以及檔案,包裝成一個Form的形式傳給WebAPI。實作的方式,就是使用MultipartFormDataContent。這個物件可以包裝所有繼承HttpContent的物件,最後形成multipart/form-data的MIME型別,內含在Http的通訊中。如果要包含字串、日期、數字,則使用StringContent即可,如果要處理檔案,則使用StreamContent物件。
//宣告MultipartFormDataContent物件
MultipartFormDataContent mulipartContentObj = new MultipartFormDataContent();
//加入需傳送文串
mulipartContentObj.Add(new StringContent("AAAA"), "key-A");
//加入需傳送的檔案
FileStream fs = File.Open(@"d:\temp\sample.jpg",FileMode.Open);
mulipartContentObj.Add(new StreamContent(fs), "sample.jpg");
//宣告HttpRequestMessage物件,並設定Content
HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Post, "http://wepapi/");
requestMessage.Content = mulipartContentObj;
//使用HttpClient送出Request並取得Resoonse
HttpClient client = new HttpClient();
HttpResponseMessage response = client.SendAsync(requestMessage).Result;