2

次のコマンドを使用しています。

wget --no-check-certificate " https://www.googleapis.com/youtube/v3/search?alt=json&q=hello&part=snippet "

403 Forbidden エラーが発生します (これは予期された出力です) が、取得できない理由として付随するサーバー応答もあります。コンテンツの長さを無視する、プライベートPEM証明書を与える、ユーザーエージェントを設定するなど、さまざまなオプションを試しましたが、それでもその出力を取得できませんでした。

ただし、curl を使用すると、出力は期待どおりになります。curl " https://www.googleapis.com/youtube/v3/search?alt=json&q=hello&part=snippet "

Wget 出力:

--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."
 }
}

問題は、私のマシンの多くに wget しかインストールされていないことです。これは私にとって厄介な問題です。wgetに出力を表示させるオプションを見逃したとほぼ確信しています。アイデアがあれば、ぜひ試してみてください。ありがとう。

4

1 に答える 1

2

残念ながら、あなたは を使用することができませんwget

wgetプログラムは、プロトコル バージョン 1.0 のみを処理しますHTTP。では、エンコーディングHTTP 1.1を使用して応答を送信できます。chunkedこれは、どちらのエージェントもデータをチャンクで送信できることを意味し、各チャンクの前に送信されるチャンクのサイズが続きます。これは、大量のデータを送信する場合や、事前にサイズがわからないデータを送信する場合に意味があります。特に、chunkedエンコーディングを使用すると、転送中のリソースの別の部分に移動できます。

あなたの場合、 で Youtube に話しかけようとするとHTTP/1.0、サーバーは運が悪いと応答します。に話しかけるとHTTP/1.1、表示される JSON を含むチャンクされた応答が返されます。curl処理HTTP/1.1し、したがってchunkedYoutube によって提供される転送エンコーディングを処理します。この Youtube クリップでは、チャンク化されたエンコーディングを簡単に確認できます。

最後に、以下はややトピックから外れています: チャンク転送エンコーディングとそれに続く範囲要求と応答はかなり関係しています。キット・ケンブリッジは彼らについて本当に素晴らしいプレゼンテーションをしました

于 2013-06-07T13:55:28.507 に答える