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;

            }
        }
复制代码

 

posted @   NangFah  阅读(2382)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示