HTTP标头未在C ++中使用Curl设置

时间:2017-07-08 19:45:45

标签: c++ http curl header thrift

我是HTTP命令和libcurl库的新手,所以很有可能我不理解一些基本的东西。也就是说,我试图在C ++中使用curl设置头文件,但是当我尝试获取Content-Type时,返回null值。我无法弄清楚为什么会这样。这是一段代码:

// HTTP headers to send with request
   struct curl_slist* headers = nullptr;

// Set Content-Type to application/x-hybrid-thrift-binary
   headers = curl_slist_append(headers, "Content-Type: application/x-hybrid-thrift-binary");

   curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
   CURLcode ret = curl_easy_perform(curl);

// Extract the content-type
   char *ct = nullptr;
   ret = curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &ct);
   if(!ret) {
     printf("Content-Type: %s\n", ct);
   }

任何帮助都将受到高度赞赏!!!

1 个答案:

答案 0 :(得分:2)

来自libcurl docs

  

概要

#include <curl/curl.h> 

 CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_TYPE, char **ct); 
     

说明

     

将指针传递给char指针以接收下载对象的内容类型。这是从Content-Type:字段读取的值。 如果您获得NULL,则表示服务器未发送有效的Content-Type标头,或者所使用的协议不支持此功能。

     

返回值

     

如果支持该选项,则返回CURLE_OK,否则返回CURLE_UNKNOWN_OPTION