curl_easy_perform不会等待在URL上提供JSON输入

时间:2018-05-04 07:23:35

标签: json http libcurl

我写了以下代码。

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资源,一旦它可用,那么只有它应该继续进行并处理获得的数据。

我错过了代码中的某些内容,或者我的理解是不正确的? 请帮助我在这个问题上取得进一步进展。

0 个答案:

没有答案