通过http地址下载文件

embedded/2024/9/29 20:28:04/

1.HttpWebResponse方法

public void GetPostContent(string url, string localSavePath)
{try{ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);myRequest.Method = "GET";myRequest.ContentType = "application/x-www-form-urlencoded";myRequest.Proxy = null;// Get responseHttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();Stream responseStream = myResponse.GetResponseStream();Stream stream = new FileStream(localSavePath, FileMode.Create);byte[] bArr = new byte[1024];int size = responseStream.Read(bArr, 0, (int)bArr.Length);while (size > 0){stream.Write(bArr, 0, size);size = responseStream.Read(bArr, 0, (int)bArr.Length);}stream.Close();responseStream.Close();}catch (System.Exception ex){throw ex;}
}

2.HttpClient方法

public static async void  DownloadFile(string url, string filePath)
{try{using (HttpClient client = new HttpClient()){HttpResponseMessage response = await client.GetAsync(url, HttpCompletionOption.ResponseHeadersRead);response.EnsureSuccessStatusCode(); // 确保HTTP成功状态值  // 读取响应内容并保存到文件  using (Stream contentStream = await response.Content.ReadAsStreamAsync(),fileStream = File.Create(filePath)){await contentStream.CopyToAsync(fileStream);}Console.WriteLine("文件下载完成。");}}catch (HttpRequestException e){MessageBox.Show(e.ToString());}
}


http://www.ppmy.cn/embedded/119562.html

相关文章

使用 Nuxt Kit 的构建器 API 来扩展配置

title: 使用 Nuxt Kit 的构建器 API 来扩展配置 date: 2024/9/24 updated: 2024/9/24 author: cmdragon excerpt: 摘要:本文详细介绍了如何使用 Nuxt Kit 的构建器 API 来扩展和定制 Nuxt 3 项目的 webpack 和 Vite 构建配置,包括扩展Webpack和Vite配置、添加自定义插件、…

HTML和CSS做一个无脚本的手风琴页面(保姆级)

一、前言 使用HTML和CSS做一个无脚本的手风琴页面。让知识以自己喜欢的方式进入脑子,适用于很多场景,比如以下: 【注:图片源自百度】 二、HTML框架 使用外部样式表,将CSS文件用link标签引入 整体框架如下图&#x…

[论文翻译]基于多模态特征融合的Android恶意软件检测方法

A Multi-modality Feature Fusion Method for Android MalwareDetection 摘要: 安卓系统的高市场占有率和开源特性导致恶意安卓应用程序的数量大幅增加。它给用户带来了许多威胁,如经济损失、隐私泄露和远程控制。构建精确的模型来检测安卓恶意软件更为…

开源模型应用落地-LangChain实用小技巧-文档分割器-自定义文档分割器(十三)

一、前言 在 LangChain 框架中,文档分割器是一种将大段文本拆分成较小块或片段的算法或方法。其目标是创建可单独处理的可管理的片段,这在处理大型文档或数据集时通常是必要的。 而自定义文档分割器可以根据特定的需求和数据类型进行定制和配置&#xff…

redis Redis-Cluster常用命令与Redis性能监控

起因:随着项目的进一步推广,数据量的增大,直接访问mysql数据库获取数据所使用的时间越来越长,为解决当前主要矛盾,决定引入redis非关系型数据库作为缓存层,使得数据并不能直接命中数据库,减少访…

SQL进阶技巧:如何利用if语句简化where或join中的条件 | if条件语句的优雅使用方法

目录 0 问题场景 1 数据准备 2 问题分析 2.1 需求一 2.2需求二 3 小结 0 问题场景 有两张表,一张用户下单表user_purchase(用户ID粒度)包含用户ID、订单ID和下单消耗金额和一张用户维表user_info包含用户ID、用户年龄和用户是否实名认证。 user_purchase user_info 需…

Java日期格式化注解@DateTimeFormat和@JsonFormat

DateTimeForma 这个注解主要用于处理从前端传递到后端的日期和时间数据。当你的 Spring 应用程序接收到一个 http请求,并且请求参数包含日期和时间数据时,DateTimeFormat 可以帮助你将这些数据解析为 Java Date 或 LocalDateTime 对象。 JsonFormat 这…