次の方法で共有


Web.Contentsを使用した状態コードの処理

Web.Contents関数には、特定の HTTP 状態コードを処理するためのいくつかの組み込み機能があります。 既定の動作は、ManualStatusHandling フィールドを使用して拡張機能でオーバーライドできます。

自動再試行

Web.Contents は、次のいずれかの状態コードで失敗した要求を自動的に再試行します。

Code ステータス
408 要求タイムアウト
429 要求が多すぎます
503 サービス利用不可
504 ゲートウェイのタイムアウト
509 帯域幅の制限を超えました

要求は、失敗する前に最大 3 回再試行されます。 エンジンは、指数バックオフ アルゴリズムを使用して、応答に Retry-after ヘッダーが含まれている場合を除き、次の再試行まで待機する時間を決定します。 ヘッダーが見つかると、エンジンは次の再試行の前に、指定された秒数待機します。 サポートされる最小待機時間は 0.5 秒で、最大値は 120 秒です。

Retry-after値は、delta-seconds形式である必要があります。 HTTP-date形式は現在サポートされていません。

認証の例外

次の状態コードでは、資格情報の例外が発生し、ユーザーに資格情報の入力を求める認証プロンプトが表示されます (期限切れの OAuth トークンの場合はもう一度サインインします)。

Code ステータス
401 無許可
4:03 許可されていません

拡張機能では、状態コード 401 と 403 で ManualStatusHandling オプションを使用できます。これは、カスタム データ コネクタの外部 (つまり、Power Query から直接) の呼び出し Web.Contents で実行できるものではありません。

Redirection

次の状態コードにより、 Location ヘッダーで指定された URI に自動リダイレクトされます。 ヘッダー Location 見つからないと、エラーが発生します。

Code ステータス
300 複数の選択肢
301 恒久的に移動しました
302 見つかりました
303 その他を参照
307 一時的なリダイレクト

状態コード 307 のみが POST 要求メソッドを保持します。 その他すべてのリダイレクト状態コードは、 GETに切り替わります。