Loading

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的使用》

 

posted @ 2020-06-04 10:41  河马先森  阅读(3599)  评论(3编辑  收藏  举报