【发布时间】:2017-12-12 21:30:09
【问题描述】:
我对 HTTP 命令和 libcurl 库非常陌生,因此我很有可能不了解一些基本知识。也就是说,我正在尝试在 C++ 中使用 curl 设置标头,但是当我尝试获取 Content-Type 时,会返回一个空值。我无法弄清楚为什么会这样。这是一段代码:
// 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);
}
任何帮助将不胜感激!!!
【问题讨论】:
-
只是一个推测,但您正在附加到
headers,它没有被分配任何内存地址。可能... headers = new curl_list();说的都是推测,我对curl一无所知。 -
我正在使用
ret = curl_easy_getinfo(curl, CURLINFO_HEADER_SIZE, &size);打印标题的大小,它返回一个非零值,我猜这意味着它正在附加到标题。 -
你是对的。我错了。基于this
-
另一个疯狂的猜测:你确定返回了标题吗? Seems not mandatory 所以也许它只是丢失了? lidcurl docs say the same
标签: c++ http curl header thrift