c# Http请求下载二进制流文件


本文目的: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的使用》

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM