我正在为第三方私有API实现HTTP客户端。此API要求不使用HTTP Keep-Alive。 libcurl
可以禁用Keep-Alive吗?即使我设置CURLOPT_FORBID_REUSE
,它仍会发送Connection: Keep-Alive
标头并使服务器混淆。如果我手动设置Connection: close
标头,它甚至会发送此标头。在这种情况下,libcurl
会发送Connection: Keep-Alive
和Connection: close
HTTP标头。
有没有人知道如何强制libcurl
永远不会重复使用连接并发送Connection: close
标头来通知服务器它没有使用连接,或者Connection: Keep-Alive
在libcurl
中是硬编码的并且可以不被改变?
答案 0 :(得分:1)
这可以通过CURLOPT_HTTPHEADER
:
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
struct curl_slist *list = NULL;
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
list = curl_slist_append(list, "Connection: close");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, list);
curl_easy_perform(curl);
curl_slist_free_all(list);
curl_easy_cleanup(curl);
}
}
至少它适用于我的Linux。