使用libcurl和初始化获取响应

Getting response with libcurl and initialization

本文关键字:获取 响应 初始化 libcurl 使用      更新时间:2023-10-16

我遵循这个关于发送到http服务器的示例。我有以下两个问题:

  1. 我不确定谁在打印服务器对屏幕的响应。它必须是curl_easy_perform,但我不确定如何禁用它。我只是想知道我得到的是200 OK还是其他回复。
  2. 如果有两个线程同时使用curl,它们都需要使用curl_easy_init初始化,还是需要一次完成?

你的两个答案都在curl FAQ中有解答:

5.10如何防止libcurl将响应写入stdout?

libcurl提供了一个默认的内置写函数接收到要输出的数据。设置CURLOPT_WRITEFUNCTION来接收

设置CURLOPT_WRITEDATA为不同的FILE *句柄。

和第二个答案的部分可以在这个问题中找到:

libcurl是安全的吗?

是的。

我们已经编写了libcurl代码,专门针对多线程程序。Libcurl将使用线程安全的函数而不是不安全的,如果你的系统有这样的。注意,您必须这样做永远不要在多个线程中共享同一个句柄

所以基本上如果你在不同的线程中使用单独的curl句柄是没问题的,但是如果你使用基于SSL的协议,你应该遵循线程安全链接,看看你需要设置什么样的SSL互斥锁回调!