使用工具时 URL 被禁止 403,但在浏览器中正常

Bra*_*kin 5 curl amazon-ec2 amazon-web-services http-headers http-status-code-403

我有一些图像需要执行 HttpRequestMethod.HEAD 才能找出图像的一些详细信息。

当我在浏览器上访问图像网址时,它加载时没有问题。

当我尝试通过我的代码或在线工具获取标头信息时,它失败了

示例 URL 为http://www.adorama.com/images/large/CHHB74P.JPG

如前所述,我已使用在线工具Hurl.It来尝试获取 Head 请求,但我收到了与代码中相同的 403 Forbidden 消息。我尝试向 Head 请求添加许多不同的标头(User-Agent、Accept、Accept-Encoding、Accept-Language、Cache-Control、Connection、Host、Pragma、Upgrade-Insecure-Requests),但这些似乎都不起作用。

它也无法通过 Hurl.it 执行正常的 GET 请求。同样的 403 错误。

如果相关的话,我的代码是 ac# Web 服务,并且正在 AWS 云上运行(以防万一 adorama 服务器有一些我不知道的针对 AWS 的东西)。为了测试这一点,我还启动了一个 ec2(linux 盒子)并运行curl,它也返回了 403 错误。在我的个人计算机上本地运行curl会返回二进制图像,这可能只是图像数据。

只是为了消除明显的想法,我的代码可以在许多其他网站上成功运行,只是这个网站存在问题

知道我需要什么才能下载图像标题而不收到 403 吗?

Vor*_*ung 2

我尝试了亚马逊的 URL,但它对我不起作用。然而,wget 确实可以在不在 Amazon EC2 上的其他服务器上工作。这是 EC2 上的 wget 输出

wget -S http://www.adorama.com/images/large/CHHB74P.JPG
--2016-03-23 08:42:33--  http://www.adorama.com/images/large/CHHB74P.JPG
Resolving www.adorama.com... 23.40.219.79
Connecting to www.adorama.com|23.40.219.79|:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.0 403 Forbidden
  Server: AkamaiGHost
  Mime-Version: 1.0
  Content-Type: text/html
  Content-Length: 299
  Cache-Control: max-age=604800
  Date: Wed, 23 Mar 2016 08:42:33 GMT
  Connection: close
2016-03-23 08:42:33 ERROR 403: Forbidden.
Run Code Online (Sandbox Code Playgroud)

但在另一台 Linux 主机上它确实可以工作。这是输出

wget -S http://www.adorama.com/images/large/CHHB74P.JPG
--2016-03-23 08:43:11--  http://www.adorama.com/images/large/CHHB74P.JPG
Resolving www.adorama.com... 23.45.139.71
Connecting to www.adorama.com|23.45.139.71|:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.0 200 OK
  Content-Type: image/jpeg
  Last-Modified: Wed, 23 Mar 2016 08:41:57 GMT
  Server: Microsoft-IIS/8.5
  X-AspNet-Version: 2.0.50727
  X-Powered-By: ASP.NET
  ServerID: C01
  Content-Length: 15131
  Cache-Control: private, max-age=604800
  Date: Wed, 23 Mar 2016 08:43:11 GMT
  Connection: keep-alive
  Set-Cookie: 1YDT=CT; expires=Wed, 20-Apr-2016 08:43:11 GMT; path=/; domain=.adorama.com
  P3P: CP="NON DSP ADM DEV PSD OUR IND STP PHY PRE NAV UNI"
Length: 15131 (15K) [image/jpeg]
Saving to: \u201cCHHB74P.JPG\u201d

100%[=====================================>] 15,131      --.-K/s   in 0s      

2016-03-23 08:43:11 (460 MB/s) - \u201cCHHB74P.JPG\u201d saved [15131/15131]
Run Code Online (Sandbox Code Playgroud)

我猜测图像提供商故意阻止来自 EC2 地址范围的请求。

这两个示例中的 wget 传出 IP 地址不同的原因是由于 adorama 提供的 CDN 提供商的 DNS 解析所致