使用libcurl步骤4之curl_easy_perform

水睿
2023-12-01

文章采集自互联网,仅做学习笔记使用

curl_easy_perform - 同步执行文件传输

名称

curl_easy_perform - 执行阻止文件传输

概要

#include <curl / curl.h>

CURLcode curl_easy_perform(CURL * easy_handle);

描述

curl_easy_init之后调用此函数并进行所有curl_easy_setopt调用,并将按照选项中的描述执行传输。它必须与同被称为easy_handle作为输入作为curl_easy_init调用返回。

curl_easy_perform以阻塞方式执行整个请求,并在完成后返回,或者如果失败则返回。有关非阻塞行为,请参阅curl_multi_perform

在使用相同的easy_handle时,您可以对curl_easy_perform进行任意数量的调用。如果您打算传输多个文件,甚至鼓励您这样做。然后,libcurl将尝试为以下传输重用相同的连接,从而使操作更快,CPU密集度更低,并且使用更少的网络资源。请注意,您必须在调用之间使用curl_easy_setopt来设置以下curl_easy_perform的选项。

您绝不能使用相同的easy_handle从两个地方同时调用此函数。让函数在再次调用之前先返回。如果您想要并行传输,则必须使用多个curl easy_handles。

虽然easy_handle被添加到多个句柄中,但curl_easy_perform无法使用

返回值

CURLE_OK(0)表示一切正常,非零表示发生错误,因为<curl / curl.h>定义 - 请参阅libcurl-errors。如果使用curl_easy_setopt设置CURLOPT_ERRORBUFFER,则返回非零时,错误缓冲区中将显示可读错误消息。

 

<span style="color:#000000">CURL * curl = curl_easy_init();
if(curl){
  CURLcode res;
  curl_easy_setopt(curl,CURLOPT_URL,“http://example.com”);
  res = curl_easy_perform(curl);
  curl_easy_cleanup(卷曲);
}</span>

使用libcurl步骤1之curl_global_init

使用libcurl步骤2之curl_easy_init

使用libcurl步骤3之curl_easy_setopt

使用libcurl步骤4之curl_easy_perform

使用libcurl步骤5之curl_easy_cleanup

 

 类似资料: