libcurl的使用

libcurl是一个用于在 Internet 上进行 HTTPHTTPS 协议通信的开源库。它可以用于创建 HTTPHTTPS 请求、响应和管理套接字。libcurl 还提供了一组钩子函数,可以轻松地与其他 URL 相关的功能(如 FTP 和 Telnet 协议)一起使用。


使用libcurl步骤:

  • curl_global_init
  • curl_easy_init

创建一个简单的句柄(handle),启动libcurl eary会话。此函数必须是第一个要调用的函数,它返回一个CURL简易句柄,必须将其用作easy界面中其他函数的输入。操作完成后,必须调用curl_easy_cleanup。如果前面没有调用curl_global_initcurl_easy_init会自动执行此操作。这在多线程情况下可能是致命的,因为curl_global_init不是线程安全的,并且可能导致资源问题,因为没有相应的清理。

返回值,如果返回NULL,则出现错误,无法使用其他curl函数


  • curl_easy_setopt

设置curl easy handle的选项,用于告诉libcurl如何操作,通过设置适当的选项,应用程序可以更改libcurl的行为。

  • CURLOPT_TIMEOUT:整个请求超时
  • CURLOPT_NOSIGNAL:不要安装信号处理程序
  • CURLOPT_URL:要处理的URL
  • CURLOPT_HTTPHEADER:自定义HTPP标头
  • CURLOPT_POSTFIELDS:发送包含此数据的POST
  • CURLOPT_WRITEFUNCTION:写入数据的回调
  • CURLOPT_WRITEDATA:传递给写回调的数据指针

  • curl_easy_perform

执行阻止文件传输,在curl_easy_init之后调用此函数并进行所有curl_easy_setopt调用,并将按照选项中的描述执行传输。

curl_easy_perform以阻塞方式执行整个请求,并在完成后返回。

在使用相同的easy_handle时,可以对curl_easy_perform进行任意数量的调用,如果打算传输多个文件,鼓励这样做,这样libcurl将尝试为传输重用相同的连接,从而操作更快,CPU密集度更低,并且使用更少的网络资源。请注意,必须在调用之间使用curl_easy_setopt来设置选项。决不能使用相同的easy_handle从两个地方同时调用此函数。让函数在再次调用之前先返回。如果想要并行传输,则必须使用多个curl_easy_handles

返回值,CURLE_OK(0)表示一切正常。如果使用curl_easy_setopt设置CURLOPT_ERRORBUFFER,则返回非零时,错误缓冲区中将显示可读错误消息。


  • curl_easy_cleanup

结束一个libcurl简易句柄

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值