【问题标题】:Libcurl doest write cookie correctly in cookie.txtLibcurl 不会在 cookie.txt 中正确写入 cookie
【发布时间】:2021-02-19 14:24:09
【问题描述】:

我正在两个软件之间建立一个 API 链接。在此过程中,我需要使用 java 调用 API。 (请把我当作新手)。

在 Java 代码中实现 API 调用之前,我想通过制定有效的 cURL 调用在控制台中获得可靠的服务器响应。我面临以下问题:

我向服务器进行身份验证,它返回一个我存储在 cookie.txt 文件中以供将来交互的 cookie 文件。但是,cookie.txt 不包含任何会话信息。这是它的内容:

# Netscape HTTP Cookie File
# curl
# This file was generated by libcurl! Edit at your own risk.

在不同的计算机上尝试相同的 cURL 请求时,它可以正常工作,并且包含用户和会话信息。我得出结论,这与我的 cURL 版本有关。但是,两台计算机都运行相同的版本(我认为是最新的):

C:\Users\victor>curl --version
curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL
Release-Date: 2017-11-14, security patched: 2019-11-05

在这一点上我不知道了。你能帮我看看我的环境有什么问题吗?

谢谢,

维克多

【问题讨论】:

    标签: curl cookies command-prompt libcurl


    【解决方案1】:

    好的。我没有找到解决方案,但我找到了解决方法。

    首先,我在 curl 请求中添加了 --dump-header header.txt 选项。这将创建一个 .txt 文件,其中包含会话的所有详细信息,以包含在后续经过身份验证的请求中。

    接下来,使用 Java 文件和字符串操作,我处理了 header.txt 文件,以提取会话信息。然后我将会话信息解析为字符串,并使用选项 -b myCookieString 而不是 -b myCookieFile.txt 重新运行我的 curl 请求

    我知道这对于一个如此微不足道的问题来说听起来很复杂,但我已经整整 2 天想出这个解决方案。

    PS : 要了解myCookieString 的格式,请查看 header.txt 文件中的 Set-Cookie 行。

    -- 编辑--

    问题已经停止自行发生... curls 和 cookie 现在运行没有问题。奇怪...不过,上述解决方案将始终有效(对我而言)。

    【讨论】:

      猜你喜欢
      • 2011-03-12
      • 2016-01-15
      • 2020-11-08
      • 2014-05-27
      • 1970-01-01
      • 2016-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多