curl 请求下载文件时出现身份验证错误

时间:2021-04-16 17:53:44

标签: curl networking basic-authentication tls1.2

我想从以下链接下载文件(直接下载链接):

https://download.spaces.hightail.com/api/v1/download/sp-79272721-ef49-4de4-a239-01f5be0692a7?downloadFile=true&redirectOnError=%2Freceive%2FSxnIY0QbDr

在浏览器中,当我点击上面的 url 时,它给了我以下错误:“访问此资源需要凭据。”

为了克服这个问题,首先我在浏览器中访问基本网址(如下所示),然后从另一个选项卡点击直接链接。这使我可以在没有凭据要求错误的情况下下载文件。 https://spaces.hightail.com/receive/SxnIY0QbDr <--- 基本网址

我想使用直接下载链接使用 curl 下载相同的文件。但是,我收到了相同的“需要凭据”错误。

  1. 如何使用 curl 从直接下载链接下载文件和 避免“需要凭据”错误?
  2. 为什么我需要先访问基本 url,然后才能访问 在浏览器中下载链接?

可能是base url和浏览器共享了一些认证信息,以后浏览器也用了,但我不是很清楚。

谢谢!!!

1 个答案:

答案 0 :(得分:0)

我解决这个问题的方法是:

  • 从浏览器开发者那里获取请求头的详细信息(原始数据) 使用浏览器下载文件并将它们存储在本地文件中时的工具。它还包含使用的 cookie 用于身份验证。

  • 获取证书 (.pem) 文件。由于我使用了一些代理服务器,所以我是从代理服务器管理控制台获取的。

  • 执行以下 curl 命令:

    <块引用>

    curl -v -S -x proxy_ip:proxy_port -H "$(cat raw_header)" --cacert cert.pem -o ./myfile https://download.spaces.hightail.com/api/v1/download/sp-79272721-ef49-4de4-a239-01f5be0692a7

相关问题