使用 Web.Contents 處理狀態碼

Web.Contents 函式內建了處理特定 HTTP 狀態碼的功能。 你可以在ManualStatusHandling中使用欄位來覆寫擴充功能中的預設行為。

自動重試

Web.Contents 會自動重試以下狀態碼失敗的請求:

Code 地位
408 請求逾時
429 過多要求
503 服務無法使用
504 閘道逾時
509 頻寬限制已超過。

該函式會將請求最多重試三次,才會判定為失敗。 引擎使用指數退縮演算法來決定下一次重試等待多久,除非回應包含 Retry-after 標頭。 當標頭被找到後,引擎會在下一次重試前等待指定的秒數。 最短支援等待時間為 0.5 秒,最大等待時間為 120 秒。

備註

Retry-after的值必須符合delta-seconds格式。 目前不支援這個 HTTP-date 格式。

認證例外

以下狀態碼會產生憑證異常。 例外會提示使用者提供憑證或在 OAuth 代幣過期時重新登入。

Code 地位
401 未經授權
403 禁止

備註

擴充功能可搭配 401 和 403 狀態碼使用 ManualStatusHandling 選項。 你無法在Web.Contents自訂資料連接器以外的通話中使用這個選項(也就是直接從 Power Query 呼叫)。

Redirection

以下狀態碼會自動重定向到標頭中 Location 指定的 URI。 缺少 Location 標頭會導致錯誤。

Code 地位
300 多選題
301 永久搬遷
302 已找到
303 參見其他
307 臨時重定向

備註

只有狀態碼 307 會保留 POST 要求方法。 所有其他重定向狀態碼都會切換到 GET