1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
libcurl详解

curl-libcurl 详解 目标 本文档介绍了在应用程序开发过程中,如何正确使用libcurl 的基本方式和指导原则。文档使用C 语 言来调用libcurl 的接口,当然也适用于其他与C 语言接近的语言。 文档主要针对使用libcurl 来进行开发的人员。文档所掼的应用程序泛指你写的源代码,这些代码使 用了libcurl 进行数据传输。 编译源码 有很多种不同的方式来编译C 语言代码。这里使用UNIX 平台下的编译方式。即使你使用的是其他 的操作系统,你仍然可以通过阅读本文档来获取许多有用的信息。 编译 你的编译器必须知道libcurl 头文件的位置。所以在编译的时候,你要设置头文件的包含路径。可以 使用curl-config 工具来获取这方面的信息: $ curl-config –cflags 链接 编译完源码(这时的源代码不是指libcurl 的源代码,你是你自己写的程序代码)之后,你还必须把 目标文件链接成单个可执行文件。你要链接libcurl 库,以及libcurl 所依赖的其他库,例如OpenSLL 库。当然可能还需要一些其他的操作系统库。最后你还要设置一些编译选项,当然可 以使用curl-config 工具简化操作: $curl-config –libs 是否使用SSL 定制编译libcurl 。与其他库不同的是,libcurl 可以定制编译,根据实际需要是否支持某些特性,如是 否支持SSL 传输,像HTTPS 和FTPS 。如果决定需要支持SSL ,必须在编译时正确的设置。可以使 用’curl-config’ 来判断libcurl 库是否支持SSL : $ curl-config –feature autoconf 宏 当你编写配置脚本来检测libcurl 及其相应设置时,你可以使用预定义宏。文档docs/libcurl/libcurl.m4 告诉你如何使用这些宏。 跨平台的可移植的代码 libcurl 的开发人员花费很大的努力,使libcurl 尽可能在大多数平台上正常运行。 全局初始化 应用程序在使用libcurl 之前,必须先初始化libcurl 。libcurl 只需初始化一次。可以使用以下语句进 行初始化: curl_global_init(); curl_global_init()接收一个参数,告诉libcurl 如何初始化。参数CURL_GLOBAL_ALL 会使libcurl 初 始化所有的子模块和一些默认的选项,通常这是一个比较好的默认参数值。还有两个可选值: CURL_GLOBAL_WIN32 只能应用于Windows 平台。它告诉libcurl 初始化winsock 库。如果winsock 库没有正确地初始化, 应用程序就不能使用socket 。在应用程序中,只要初始化一次即可。 CURL_GLOBAL_SSL 如果libcurl 在编译时被设定支持SSL ,那么该参数用于初始化相应的SSL 库。同样,在应用程序 中,只要初始化一次即可。 libcurl 有默认的保护机制,如果在调用curl_easy_perform 时它检测到还没有通过curl_global_init 进行 初始化,libcurl 会根据当前的运行时环境,自动调用全局初始化函数。但必须清楚的是,让系统自已初 始化不是一个好的选择。 当应用程序不再使用libcurl 的时候,应该调用curl_global_cleanup 来释放相关的资源。 在程序中,应当避免多次调用curl_global_init 和curl_global_cleanup 。它们只能被调用一次。 libcurl 提供的功能 在运行时根据libcurl 支持的特性来进行开发,通常比编译时更好。可以通过调用curl_version_info 函 数返回的结构体来获取运行时的具体信息,从而确定当前环境下libcurl 支持的一些特性。下面是笔者在 visual studio2008 中调用相关函数获取libcurl 版本信息的截图: 使用easy interface 首先介绍libcurl 中被称为easy interface 的api 函数,所有这些函数都是有相同的前缀:curl_easy 。 当前版本的libcurl 也提供了multi interface ,关于这些接口的详细使用,在下面的章节中会有介绍。在使 用multi interface 之前,你首先应该理解如何使用easy int

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档