我在 C++ 应用程序中使用 Curl (libcurl),并且无法发送 cookie(我认为)。
我安装了 Fiddler、TamperData 和 LiveHTTP 标头,但它们仅对查看浏览器流量有用,并且(似乎)无法监控机器上的一般网络流量,所以当我运行我的机器时,我看不到标头信息被发送。但是,当我在浏览器中查看页面时,成功登录后,我可以看到正在发送 cookie 信息。
运行我的应用程序时,我成功登录到该页面,当我随后尝试获取另一个页面时,(页面)数据表明我没有登录 - 即“状态”不知何故丢失了。
我的 C++ 代码看起来不错,所以我不知道出了什么问题 - 这就是我需要这样做的原因:
首先能够查看我的机器网络流量(不仅仅是浏览器流量)- 哪个(免费)工具?
假设我错误地使用 Curl,我的代码有什么问题?(cookies 正在被检索和存储,似乎它们只是由于某种原因没有随请求一起发送。
这是我的课程中处理 Http 请求的 cookie 方面的部分:
curl_easy_setopt(curl, CURLOPT_TIMEOUT, long(m_timeout));
curl_easy_setopt(curl, CURLOPT_USERAGENT,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; WOW64; SV1; .NET CLR 2.0.50727)");
curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "cookies.txt");
curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "cookies.txt");
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl, CURLOPT_AUTOREFERER, 1L);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, CurlCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, this);
上面的代码有什么问题吗?