【发布时间】:2020-02-28 11:08:29
【问题描述】:
我正在开发一个使用 curl 执行 API 请求的 C++ 库。我在尝试使用curl_slist 和curl_easy_getinfo(curl, CURLINFO_COOKIELIST, &cookies); 处理响应中返回的cookie 时遇到问题。
它看起来像一个链表,所以我有一个 current 和 next 属性,我正在检查 next 何时为 NULL 我应该跳出循环但由于某种原因它卡在循环中,看起来它正在做一遍又一遍地使用相同的cookie,但不明白为什么。
struct curl_slist* cookies;
curl_easy_getinfo(curl, CURLINFO_COOKIELIST, &cookies);
int i = 1;
std::vector<CookieObj> cookieObjects;
struct curl_slist* current = cookies;
if (current != NULL)
{
string cookieString = string(current->data);
CookieObj cookieObj = storeCookie(cookieString);
cookieObjects.push_back(cookieObj);
while (current->next != NULL)
{
string cookieString = string(current->data);
CookieObj cookieObj = this->storeCookie(cookieString);
cookieObjects.push_back(cookieObj);
current = cookies->next;
i++;
}
【问题讨论】:
-
你的电流在 while 循环中是如何更新的?
-
不确定你的意思,当前变量在 while 循环结束时更新为
cookies->next的值。