0
点赞
收藏
分享

微信扫一扫

libcurl入门之相关接口函数curl_easy_perform

Go_Viola 2022-01-31 阅读 126


名称 ​​curl_easy_perform​​

原型


#include <curl/curl.h>
CURLcode curl_easy_perform(CURL *easy_handle);


描述

这个函数在curl_easy_init和所有的curl_easy_setopt参数设置完成后调用。调用这个函数libcurl将按照设置的选项执行动作。这个函数需要使用curl_easy_init函数返回的相同的easy_handle作为输入被调用。

curl_easy_perform通过阻塞的方式执行全部的请求,当执行完以后或者失败了才返回。对于非阻塞的方式,可以参考curl_multi_perform.

你可以使用相同的easy_handle多次调用curl_easy_perform.如果你打算传输一个或更多个文件,更推荐你使用这种方式。对于之后的传输libcurl将尝试重用相同的链接,因此会更快,更少的使用cpu和网络资源。需要注意的是,使用curl_easy_setopt在两次curl_easy_perform去设置选项(比如每个不同的传输肯定需要不同的CURLOPT_URL)。

相同easy_handle,绝不能在两个不同的地方同时调用curl_easy_perform。在下一调用的时候,必须让这个函数先返回,也换句话说就是按顺序阻塞的执行。如果想并行传输,必须使用多个easy_handle

easy_handle添加到multi handle中,他将不能在使用curl_easy_perform。

返回值

CURL_OK(0)意味着一切都是正常的,非0意味着发生了一个错误,错误定义在<curl/curl.h>中。可以在​​libcurl-erros​​这里去查看。如果通过curl_easy_setopt设置了CURLOPT_ERRORBUFFER选项,当返回非0值,一个可读的错误消息将放入error buffer中。

示例

CURL *curl = curl_easy_init();
if(curl) {
CURLcode res;
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}



举报

相关推荐

0 条评论