是否可以使用libcurl禁用HTTP Keep-Alive?

时间:2015-09-01 10:49:03

标签: c++ c libcurl

我正在为第三方私有API实现HTTP客户端。此API要求不使用HTTP Keep-Alive。 libcurl可以禁用Keep-Alive吗?即使我设置CURLOPT_FORBID_REUSE,它仍会发送Connection: Keep-Alive标头并使服务器混淆。如果我手动设置Connection: close标头,它甚至会发送此标头。在这种情况下,libcurl会发送Connection: Keep-AliveConnection: close HTTP标头。 有没有人知道如何强制libcurl永远不会重复使用连接并发送Connection: close标头来通知服务器它没有使用连接,或者Connection: Keep-Alivelibcurl中是硬编码的并且可以不被改变?

1 个答案:

答案 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。