问题描述
我有一段代码可以模拟登录到某个 java servlet,获取 JSESSIONID 并在使用后将其分配给其他所有请求:
curl_setopt($curl,CURLOPT_COOKIE,$cookie);
第一个请求获取登录表单并生成 cookie,然后我使用新生成的 cookie 发出另一个请求以获取验证码图像(有自己的系统并且很容易获取),并使用来自用户。这是可行的,但是除了登录之外进行任何其他操作会完全终止我与该 servlet 的会话(不是我丢失了 cookie,而是会话突然没有登录,就像它已过期一样)。
奇怪的是,这是 Windows Server 2019 机器上的行为,但它在 Linux 机器上完美运行,并且发送的数据包在两者上完全相同。
我尝试将 CURLOPT_HTTPAUTH 从 CURLAUTH_BASIC 更改为其他所有值,但均无效。 PHPInfo 显示我的 Windows 机器有 curl 7.70.0 (PHP 7.3.27),我的 Linux 机器有 curl 7.19.7 (PHP 7.3.25)。
我尝试在同一台 Windows 机器上的 Web 浏览器上执行这些请求,但未能执行此操作并且可以正常工作,因此这与 IP 黑名单或类似问题无关,问题一定与 curl 相关。这里可能有什么问题?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)