c++ - 如何(即使用什么工具)监视 Curl 发送的 header (Cookie 问题)

标签 c++ cookies curl libcurl

我在 C++ 应用程序中使用 Curl (libcurl),但无法发送 cookie(我认为)。

我安装了 Fiddler、TamperData 和 LiveHTTP Headers,但它们仅对查看浏览器流量有用,而且(看起来)无法监控机器上的一般网络流量,所以当我运行我的机器时,我看不到正在发送的 header 信息。但是,当我在浏览器中查看页面时,当成功登录时,我可以看到正在发送 cookie 信息。

当运行我的应用程序时,我成功登录到页面,当我随后尝试获取另一个页面时,(页面)数据表明我没有登录 - 即“状态”以某种方式丢失。

我的 C++ 代码看起来不错,所以我不知道出了什么问题 - 这就是为什么我需要:

  1. 首先能够查看我的机器网络流量(不仅仅是浏览器流量)- 哪个(免费)工具?

  2. 假设我错误地使用了 Curl,那么我的代码有什么问题吗? (cookie 正在被检索和存储正常,似乎由于某种原因它们没有随请求一起发送。

这是我的类(class)中处理 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);

上面的代码有什么问题吗?

最佳答案

您可以使用 Wireshark (以前的 Ethereal)查看机器正在发送和接收的所有网络流量。

关于c++ - 如何(即使用什么工具)监视 Curl 发送的 header (Cookie 问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2318150/

相关文章:

C++ 为什么我的循环中断了?

c++ - 模板化 c++ 类的 cython 包装给出 undefined symbol

python - 生成 Flask 中使用的签名 session cookie 值

javascript - 无法在 vue-router 中使用 cookie。未定义 "this"

php - 使用 PHP cURL 扩展在两个网站之间共享相同的 cookie

php - cURL:CURLOPT_CAPATH 包含正确的证书但不起作用

c++ - 将对象引用转换为 STL 迭代器

c++ - boost shared_ptr 的 const 正确性

用于实时视频流的 PHP + cURL(cURL 可以处理无限数据吗?)

node.js - curl 在执行 HEAD 请求时不会返回