我写了以下代码。
CURL *curl_handle;
struct curl_slist *headers=NULL;
int ret;
curl_global_init(CURL_GLOBAL_ALL);
curl_handle = curl_easy_init();
headers = curl_slist_append(headers, "Content-Type: application/json");
headers = curl_slist_append(headers, "Accept: application/json");
curl_easy_setopt(curl_handle, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl_handle, CURLOPT_URL, "http://<url>");
curl_easy_setopt(curl_handle, CURLOPT_NOPROGRESS, 1L);
curl_easy_setopt(curl_handle, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(curl_handle, CURLOPT_HTTPGET,1);
curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, writer);
int httpCode(0);
std::unique_ptr<std::string> httpData(new std::string());
curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, httpData.get());
ret = curl_easy_perform(curl_handle);
根据我的理解,curl_easy_perform应该等待json作为它的资源。但不幸的是,我的程序返回时没有等待JSON资源。
我希望libcurl等待for JSON资源,一旦它可用,那么只有它应该继续进行并处理获得的数据。
我错过了代码中的某些内容,或者我的理解是不正确的? 请帮助我在这个问题上取得进一步进展。