Wget vs Curl:获取站点输出时出现禁止的403错误

Wget vs Curl:获取站点输出时出现禁止的403错误,curl,wget,Curl,Wget,我正在使用以下命令: wget--无检查证书“” 我得到403禁止的错误(这是预期的输出),但是还有一个伴随的服务器响应,这是我无法得到的原因。我尝试了各种选择——忽略内容长度、提供私有PEM证书、设置用户代理等,但仍然无法获得输出 然而,使用curl,输出正如预期的那样。 卷曲“ 工作组产出: 卷曲输出: 问题是我的许多机器只安装了wget,所以这对我来说是一个恼人的问题。我几乎可以肯定我错过了一些使wget显示输出的选项。如果你有什么想法,我很乐意尝试一下。 谢谢。不幸的是,您使用wget时

我正在使用以下命令:

wget--无检查证书“”

我得到403禁止的错误(这是预期的输出),但是还有一个伴随的服务器响应,这是我无法得到的原因。我尝试了各种选择——忽略内容长度、提供私有PEM证书、设置用户代理等,但仍然无法获得输出

然而,使用curl,输出正如预期的那样。 卷曲“

工作组产出: 卷曲输出: 问题是我的许多机器只安装了wget,所以这对我来说是一个恼人的问题。我几乎可以肯定我错过了一些使wget显示输出的选项。如果你有什么想法,我很乐意尝试一下。
谢谢。

不幸的是,您使用wget时运气不好

wget
程序仅处理
HTTP
协议版本1.0。在HTTP 1.1中,可以使用
分块编码发送响应。这意味着任何一个代理都可以以块的形式发送数据,在每个块之前发送块的大小。当发送大量数据或数据的大小事先未知时,这是有意义的。除此之外,
chunked
编码允许您移动到正在传输的资源的不同部分

你的情况是,当你试图通过HTTP/1.0与Youtube聊天时,服务器会回应说你运气不好。当您通过HTTP/1.1
与它交谈时,它会提供一个包含您看到的JSON的分块响应
curl
处理
HTTP/1.1
,因此处理Youtube提供的
分块的
传输编码。让您快速了解分块编码

最后,以下内容有点离题:分块传输编码以及随后的范围请求和响应相当复杂。基特·剑桥做了一个实验

--2013-06-07 18:37:13--  https://www.googleapis.com/youtube/v3/search?alt=json&q=hello&part=snippet
Resolving www.googleapis.com (www.googleapis.com)... 74.125.135.95, 2404:6800:4001:c01::5f
Connecting to www.googleapis.com (www.googleapis.com)|74.125.135.95|:443... connected.
WARNING: The certificate of `www.googleapis.com' is not trusted.
WARNING: The certificate of `www.googleapis.com' hasn't got a known issuer.
HTTP request sent, awaiting response... 403 Forbidden
2013-06-07 18:37:14 ERROR 403: Forbidden.
{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "dailyLimitExceededUnreg",
    "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
    "extendedHelp": "https://code.google.com/apis/console"
   }
  ],
  "code": 403,
  "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
 }
}