在C#中使用libcurl库

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

1、添加对libcurl库的引用

在C#中使用libcurl库_第1张图片

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:下载某页面上的所有图片

你可能感兴趣的:(在C#中使用libcurl库)