最近需要写一个下载列表,涉及到了下载文件的操作,听取别人意见,决定使用libcurl。
libcurl相关资料:http://curl.haxx.se/libcurl/c/
libcurl下载地址:http://curl.haxx.se/download.html
在查找文档时,发现libcurl主站上的相关文档都是英文的,读起来有点不那么顺畅。倒是不耽误写代码,只是觉得有必要把他们翻译过来,方便后来者理解libcurl,因此我在此将部分有用文档用汉语来简单表述一下,希望对各位有所帮助。
http://curl.haxx.se/libcurl/c/页面的翻译如下:
使用libcurl的C接口
如果想要深入的掌握libcurl程序都包括哪些内容,可以从这个教程开始看:教程
这里面有一些C标准源码的例子,查看这里:C源码例子 内容不是非常全面,甚至可以说有点宽泛,但是他们也许会给你一些编程上的灵感
如果对libcurl的版本号感兴趣,可以深入了解下文档:Symbols In Versions,这个文档记录了版本历史(反正我是没看到)
使用Microsoft Visual Studio的windows开发者,也许会对下面这两个感兴趣:
1. Andrei Jakab 写的 Using libcurl with SSH support in Visual Studio 2010 [PDF]
2. Rosso Salmanzadeh 写的 Using libcurl in Visual Studio [PDF] guide
The Easy Interface
1. 当使用libcurl时,你需要先 初始化 你的easy-session,得到句柄,这个句柄会作为下面你将要用到的接口函数的输入参数。
2. 接下来你需要设置所有的 属性,这些属性在即将到来的各种交互中会用到,这些属性中最重要的一个就是 URL,即下载地址本身。你也许想要设置一些回调函数,当lubcurl动态库中的一些数据是你所需要的时,可以通过回调函数传送出来,那么都可以在此来设置。
3. 当一切准备就绪,你便可以告诉libcurl可以 执行 操作了。libcurl开始执行整个下载操作,当下载完成或者失败时,会返回。
4. 在操作执行完后,你可以 获取 关于transfer的信息,然后你变可以清除 easy-session 的句柄了,之后libcurl便会全部关闭
上述步骤的概述可以查看:easy interface overview.
上述用到的函数如下:
上面几个函数的用法翻译在这:
下面是一些有用的libcurl中的其他接口
curl_version() | returns a pointer to the libcurl version string |
curl_getdate() | converts a date string to time_t |
curl_formadd() | build multipart form-data posts |
curl_formfree() | free a previously built form POST |
curl_slist_append() | builds a linked list |
curl_slist_free_all() | frees a whole curl_slist as made with curl_slist_append() |
curl_easy_escape() | URL encodes a string |
curl_easy_unescape() | URL decodes a string |
注:本文为原创翻译,转载请注明出处。
【完】