Windows环境下应用Curl下载文件
对curl熟悉的同学都知道curl在linux环境下应用得很广-命令行下载文件。我为什么会记录它在windows下的应用呢,原因是之前做项目,客户给我提供了一个url,按正常的思路,我用webclient去downloadFile就可以直接下载,但是我下载下来的是一个网页,并没有把里面的pdf文件下载下来。
客户提供的url放在网页上是一个弹窗按钮问你是否保存下载这个pdf文件,具体的图片我就不贴出来了。我在想是不是我用webclient写功能不够强大,无法模拟网页的下载功能。找了好几天,经过测试curl可以实现这个功能,curl相当于一个小型的浏览器核心。
操作步骤如下:
一、在网上查找curl Windows环境的安装包,具体自行查找。
二、下载下来把文件解压在C盘,然后环境变量添加添加此文件夹,如下图所示,可以ping一下curl ,验证安装是否成功,接下来就是用cmd 执行curl相关命令。
三、代码如下
public static bool GetFileFromCurl(string url) { try { string strInput = "curl " + "\"" + url + "\"" + " --output " + "\"" + Global.pdfname + "\""; Process p = new Process(); //设置要启动的应用程序 p.StartInfo.FileName = "cmd.exe"; //是否使用操作系统shell启动 p.StartInfo.UseShellExecute = false; // 接受来自调用程序的输入信息 p.StartInfo.RedirectStandardInput = true; //输出信息 p.StartInfo.RedirectStandardOutput = true; // 输出错误 p.StartInfo.RedirectStandardError = true; //不显示程序窗口 p.StartInfo.CreateNoWindow = true; //启动程序 p.Start(); //向cmd窗口发送输入信息 p.StandardInput.WriteLine(strInput + "&exit"); p.StandardInput.AutoFlush = true; //获取输出信息 string strOuput = p.StandardOutput.ReadToEnd(); //等待程序执行完退出进程 p.WaitForExit(); p.Close(); return true; } catch (Exception ex) { Log.WriteLog("GetFileFromCurl:异常" + ex.Message); return false; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)