在C#中使用libcurl库

2023-05-16

几乎在所有的linux发行版中,默认都是包含有libcurl库的。那么,libcurl是使用C开发的,自然,当你用C或C++使用libcurl库的时候很方便。但是,如果你想使用C#来开发程序的话,怎么办呢。幸好,还有libcurl.NET库,就是经过封装之后的libcurl库。

1、添加对libcurl库的引用


2、写一个简单的测试程序

/*
 * Created by SharpDevelop.
 * User: Peng QianHe
 * Date: 9/9/2012
 * Time: 8:08 PM
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;

using System.IO;
using SeasideResearch.LibCurlNet;

namespace ConsoleTest
{
	class Program
	{
		private static BinaryWriter bw = null;
		
		public static void Main(string[] args)
		{
			try {
				Curl.GlobalInit((int)CURLinitFlag.CURL_GLOBAL_ALL);

				Easy easy = new Easy();
				Easy.WriteFunction wf = new Easy.WriteFunction(OnWriteData);

				if(args.Length>1){
					easy.SetOpt(CURLoption.CURLOPT_URL, args[0]);
				}else{
					string url = string.Empty;
					Console.WriteLine("Download URL: ");
					url = Console.ReadLine();
					
					easy.SetOpt(CURLoption.CURLOPT_URL,url);
				}
				easy.SetOpt(CURLoption.CURLOPT_VERBOSE,1);
				easy.SetOpt(CURLoption.CURLOPT_WRITEFUNCTION, wf);
				easy.SetOpt(CURLoption.CURLOPT_NOPROGRESS,1);
				
				string path = string.Empty;
				Console.WriteLine("Save Path: ");
				path = Console.ReadLine();
				Program.bw = new BinaryWriter(new FileStream(path,FileMode.Create));
				
				easy.Perform();
				
				easy.Cleanup();
				
				Program.bw.Close();

				Curl.GlobalCleanup();
			}
			catch(Exception ex) {
				Console.WriteLine(ex);
			}
		}
		
		public static Int32 OnWriteData(Byte[] buf, Int32 size, Int32 nmemb,
		                                Object extraData)
		{
			Program.bw.Write(buf);
			return size * nmemb;
		}
	}
}

之后,不用说了,肯定是编译运行,试试了。

libcurl.NET库可以点击这里下载

【更多阅读】

  1. [原]使用Excel的VBA来读取和修改bmp位图像素数据
  2. [原]IniFile.cs:C#来操作ini配置文件
  3. [原]ManageStartUpApps:C#操作注册表来读取和修改开机启动项
  4. [原]IniFile.cs:C#来操作ini配置文件
  5. [原]IniFile.cs:C#来操作ini配置文件
  6. [原]《The C Programming Language》电子书下载
  7. [原]Baidu:C#利用百度来搜索网页、图片、视频等等
  8. [原]PjConvertImageFormat:用FreeImage.NET写的一个35种图像格式转换程序
  9. [原]GetIcons:C#提取应用程序的图标资源
  10. [原]DownloadWebImages:下载某页面上的所有图片

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在C#中使用libcurl库 的相关文章

  • 同源策略与跨域

    前言 最近业务上前端同学多次联系说访问腾讯云cos资源的时候因为跨域的问题访问不到 大致看了下腾讯云关于设置跨域访问的教程 按照前端同学给的域名等选项就给配了 而且测试下来也是好的 但是呢一直不知道什么是跨域这里就做一个简单的学习记录 一
  • libcurl HTTPS POST 数据发送?

    我有通过 HTTP POST 请求接收数据的应用程序 我正在尝试使用 libcurl 打开对此应用程序的请求 发送数据并接收从应用程序返回的回复 这是我到目前为止的代码 int main void CURL curl CURLcode re
  • fork() 后 libCurl SSL 错误

    我正在开发一个 FUSE 驱动程序 当我将其作为守护进程运行时 没有 f 或 d 标志 通过 libcurl 发出的所有 https 请求都会失败 我能够通过发出 https 请求 分叉并返回父进程 然后从新进程发出第二个请求来重现该错误
  • 在 Mac 上安装 pycurl

    我对 python 非常陌生 需要帮助在我的机器上安装 pycurl 库 我现在正在运行 python 2 7 一个简短的教程将不胜感激 使用两种方法之一 方法一 须藤easy install pycurl 方法二 pip 安装 pycur
  • 在 Visual Studio 2010 上安装 LibCurl

    我在 Visual Studio 2010 中使用 LibCurl 时遇到了一些问题 请记住 我对 C 还很陌生 我根据 libcurl 网站上的说明构建了库 并尝试将我的项目指向包含目录 libcurl lib 等 但当我尝试构建项目时
  • 初始化 SSL 和 libcurl 并出现“内存不足”

    我打算使用 C 程序使用 libcurl 和 openssl 执行 https 请求 我初始化了 libcurlcurl global init CURL GLOBAL ALL 如文档中所述 然后我用一个curl easy处理我初始化的内容
  • 通过 PHP Curl 请求 URL 时出现 HTTP 代码 302 错误

    通过 PHP curl exec 请求 url 时收到 302 错误消息 但手动执行时收到代码 200 可能是什么差异导致结果不同 假设我在服务器中有以下代码 url http localhost circle my request sus
  • 如何从HTTP状态码获取HTTP状态文本? [复制]

    这个问题在这里已经有答案了 是否有任何标准函数 或在curl Guzzle 中 可以从HTTP 状态代码号获取HTTP 状态文本 描述 getHttpStatusText 404 Not Found 我知道我可以创建一个像这样的地图 404
  • 如何在MacOS10.12下安装libcurl并用于Xcode?

    为 iOS 4 2 构建 libCURL http www creativealgorithms com blog content building libcurl ios 42 大家好 这是我的第一个堆栈溢出问题 我已经阅读了之前发布的博
  • curl_multi_exec() 是阻塞调用吗?

    只是好奇如果curl multi exec PHP中的调用分为阻塞调用和非阻塞调用 简短回答 curl multi exec is 非阻塞 更长的答案 curl multi exec is 非阻塞 but 可以通过组合来进行阻止curl m
  • 克隆存储库时,remote-https 不是 git 命令

    在 Windows 版本 10 机器上 在撰写本文时具有最新的 git 客户端 2 18 0 windows 1 使用 HTTPS 克隆存储库失败并出现错误 git remote https is not a git command 经过一
  • 是否允许在 iPhone 应用商店应用程序中包含 libCurl?有人做过这个吗?

    我想在应用程序中使用 libCurl 来与 Web 服务通信 不幸的是它没有包含在 iPhone SDK 中 现在我已经弄清楚如何将 Curl 作为静态库包含在我的应用程序中 但是 我想知道这是否会让我的应用程序被 Apple 拒绝 有没有
  • 如何使用 PHP Curl 模拟启用 JavaScript?

    我想使用 PHP Curl 解析网页中的 HTML 代码 但有一条错误消息 表明我无法在没有 JavaScript 的情况下访问该网站 我可以使用 PHP Curl 启用 JavaScript 吗 JavaScript由浏览器执行 cURL
  • 当 URL 不正确时,curl_easy_perform 崩溃

    我在尝试使用下载文件时遇到问题libcurl 该程序使用多个线程 每个需要下载文件的线程都会创建一个libcurl处理来工作 当 URL 正确时 一切正常 但如果 URL 错误 程序就会崩溃 在调试模式下 如果 URL 不正确curl ea
  • 多线程curl同时处理多个连接

    curl multi 接口是否在内部生成新线程以同时处理多个请求 它是否等于手动生成线程并仅使用curl easy句柄 什么是性能更高 我需要发出最多 1000 个并发请求 https curl haxx se libcurl c mult
  • 使用 libcurl 而不使用 dll

    我正在使用 Microsoft Visual C 2010 我需要制作一个不需要 libcurl dll 的应用程序 我在预处理器指令中定义 CURL STATICLIB 并链接到 libcurl lib libcurl static li
  • libcurl 回调 w/c++ 类成员

    取自libcurl 编程教程 http curl haxx se libcurl c libcurl tutorial html在 libcurl 网站上 libcurl 与 C 使用 C 时基本上只需要记住一件事 在连接 libcurl
  • 如何正确重复使用卷曲手柄

    我想正确地重用卷曲句柄 这样它就不会给我错误并正常运行 假设我有这段代码 CURL curl curl global init CURL GLOBAL ALL curl curl easy init curl easy setopt cur
  • 从标准 cookie 格式转换为 LibCurl cookie jar 格式

    有没有方便的工具 代码可以转换标准 cookie 字符串格式 e g NAME1 VALUE1 NAME2 VALUE2 to the libCURL cookie jar 格式 e g netscape com TRUE FALSE 94
  • 使用curl解压gzip数据

    I added curl easy setopt client CURLOPT ENCODING gzip 到我的代码 我预计curl 会导致服务器发送压缩数据并解压缩它 实际上我在 HTTP 标头中看到数据被压缩 变化 Accept En

随机推荐

  • 数组协变

    在某些情况下 xff0c 即使某个对象不是数组的基类型 xff0c 我们也可以把它赋值给数组元素 这种属性叫做协变 xff08 covariance xff09 在下面的情况下可以使用协变 xff1a 数组是引用类型数组 在赋值的对象类型和
  • 策略模式

    策略模式 由于最近在研究学习设计模式 xff0c 我会用自己的理解方式来表述对设计模式的学习和认识 xff0c 通过最常用 好记的案例来记住和使用设计模式 xff0c 希望对设计代码方面有所提高和改进 一 应用背景 在软件开发中常常遇到这种
  • Vs2010与VC的区别

    VS2010与VC 43 43 编译器的区别 xff1a 1 VS2010并不是针对C 43 43 的 xff0c C 43 43 只是它的一小部分 xff0c 它更加关注 net平台程序开发 xff08 主要是C VB xff0c C 4
  • 通过OAuth2.0方式弹出授权页面获得用户基本信息

    获取微信用户的个人的信息的时候 xff0c 要特别注意的是有两个不同的Access Token xff0c 他们产生的方式不一样 xff0c 一种是使用AppID和AppSecret获取的access token xff0c 一种是OAut
  • SqlSugar入门级教程+实例 (.net core下的)

    官方参考 xff1a http www codeisbug com Doc 8 前言 xff1a 这应该是目前最好用的ORM框架之一了 xff0c 而且支持 net core xff0c 网上除了官方文档其他参考就少了点 xff0c 自己整
  • c#通过串口及CAN模块实现上位及下位机通讯

    目录 前言 一 串口 CAN总线 二 使用步骤 1 RS232串口通讯 xff08 指令下发与接收 xff09 2 CAN总线通讯 总结 前言 学习及工作中我们经常会遇到上位机与下位机通讯等工作 xff0c 结合场景使用不同的通讯方式实时通
  • C# String转int主要有四种方法

    String转int主要有四种方法 1 int Parse 是一种类容转换 xff1b 表示将数字内容的字符串转为int类型 如果字符串为空 xff0c 则抛出ArgumentNullException异常 xff1b 如果字符串内容不是数
  • 基于正点原子STM32F103精英板IIC实验的MS5611气压计的使用

    MS5611是一款气压计 xff0c 能够提供高精度的气压值与温度值 xff0c 这次做项目正好需要用到这款传感器 xff0c 包括之前也没好好学习用过IIC xff0c 所以写下博客记录一下 如果有需要使用的朋友可以去https down
  • 关于C#使用XMLDocument生成XML文档时,UTF-8编码的BOM问题

    XmlSerializer 的序列化 默认指定 编码 xmlWriterSettings Encoding 61 Encoding UTF8 这种编码是带bom标记位 BOM byte order mark 字节顺序标记 的 改为 xff1
  • Winform datagridview中显示下拉框示例

    方式一 xff1a 如下图所示 xff0c 该方式也是较为简单的一种 你只需要添加一列类型为DataGridViewComboBoxColumn的列 xff0c 然后添加数据源即可 但是我们看到这种方式的下拉列表看起来并不是十分的美观 xf
  • subject may not be empty[Git]

    PS D MySource sino manager gt git commit husky gt pre commit node v10 15 3 STARTED Preparing SUCCESS Preparing STARTED R
  • [转]C# HTTP 错误 403.14 - Forbidden Web

    HTTP 错误 403 14 ForbiddenWeb 服务器被配置为不列出此目录的内容 出现以上这个错误可能有如下解决方法 xff1a 1 将应用程序池设置成V4 0 2 在配置文件中加上以下几句代码 xff1a lt system we
  • c# 创建Web Api项目

    创建WebApi项目 xff1a 在VS工具中创建一个ASP NET Web应用程序 选择Webapi 一个webapi项目就创建好了 这里简单的写一个post和get两种请求的方法 xff0c 由于post请求参数需要参数体的形式 xff
  • C# 反射获取类的成员变量名称及值

    测试用的类 public class PersonData public string gender 61 string Empty public List lt int gt pifuRGB 61 new List lt int gt 0
  • cstring转换为char*

    在Visual C 43 43 NET2005中 xff0c 默认的字符集形式是Unicode xff0c 但在VC6 0等工程中 xff0c 默认的字符集形式是多字节字符集 xff08 MBCS xff1a Multi Byte Char
  • Error creating bean with name 'userController'

    Caused by org springframework beans factory UnsatisfiedDependencyException Error creating bean with name 39 userControll
  • IntelliJ IDEA Cannot find declaration to go to

    最近在用IntelliJ IDEA开发一个微服务的项目的时候 xff0c 从git clone了代码 xff0c 再用IntelliJ IDEA导入项目以后 项目里好多方法 类和属性都无法转到定义或者声明处 xff0c 无论是Ctrl 43
  • CString转char * ,string

    CString头文件 include lt afx h gt string头文件 include lt string h gt 1 CString转char CString cstr char p 61 LPSTR LPCTSTR cstr
  • GPS数据包格式+数据解析

    GPS数据包格式 43 数据解析 一 全球时区的划分 xff1a 每个时区跨15 经度 以0 经线为界向东向西各划出7 5 经度 xff0c 作为0时区 即0时区的经度范围是7 5 W 7 5 E 从7 5 E与7 5 W分别向东 向西每1
  • 在C#中使用libcurl库

    几乎在所有的linux发行版中 xff0c 默认都是包含有libcurl库的 那么 xff0c libcurl是使用C开发的 xff0c 自然 xff0c 当你用C或C 43 43 使用libcurl库的时候很方便 但是 xff0c 如果你