本文目的:Http請求外部Api接口(接口返回的是二進制流數據類型application/octet-stream),實現下載文件到本地磁盤。
昨天,使用原來的HttpHelper工具類(HttpWebResponse),請求接口下載文件發現返回的是string類型,因為需要的是byte[]類型,然后又把string轉為了byte[]后進行下載,發現圖片和word等部分格式文件下載后打不開。
后經朋友指教,提供了另外一種方式WebClient,進行下載,默認請求類型是Content-Type: multipart/form-data;。
var url = "http://api.xxxx"; using (var webClient = new WebClient()) { webClient.Headers.Add("Authorization", "xxxx"); var formData = new NameValueCollection(); formData["file_id"] = "xxxxx"; byte[] fileBytes = webClient.UploadValues(url, "POST", formData); System.IO.File.WriteAllBytes(@"D:\tmp\hema.docx", fileBytes); }
如果想多了解Http這三種區別,可看看這篇博文《C#中HttpWebRequest、WebClient、HttpClient的使用》