呼叫第三方 API - AWS Step Functions

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

呼叫第三方 API

HTTP 工作是一種任務狀態,可讓您呼叫工作流程中的任何公用協力廠商 API,例如 Salesforce 和 Stripe。若要呼叫第三方 API,請將 [工作] 狀態與arn:aws:states:::http:invoke資源搭配使用。然後,提供 API 端點配置詳細信息,例如 API URL,要使用的方法以及身份驗證詳細信息。

如果您使用工作流程 Studio 來建置包含 HTTP 工作的狀態機器,工作流程 Studio 會自動產生具有 HTTP 工作IAM原則的執行角色。如需詳細資訊,請參閱 在工作流程工作室中測試 HTTP 任務的角色

HTTP 任務定義

ASL 定義表示具有http:invoke資源的 HTTP 任務。以下 HTTP 任務定義調用條紋 API,該 API 返回所有客戶的列表。

"Call third-party API": { "Type": "Task", "Resource": "arn:aws:states:::http:invoke", "Parameters": { "ApiEndpoint": "https://api.stripe.com/v1/customers", "Authentication": { "ConnectionArn": "arn:aws:events:us-east-2:123456789012:connection/Stripe/81210c42-8af1-456b-9c4a-6ff02fc664ac" }, "Method": "GET" }, "End": true }

「HTTP 任務」字段

HTTP 任務在其定義中包含以下字段。

Resource (必要)

若要指定工作類型,請在Resource欄位中提供其 ARN。對於 HTTP 工作,您可以依照下列方式指定Resource欄位。

"Resource": "arn:aws:states:::http:invoke"
Parameters (必要)

包含ApiEndpoint、和ConnectionArn欄位Method,這些欄位提供您要呼叫的第三方 API 相關資訊。 Parameters也包含選擇性欄位,例如HeadersQueryParameters

您可以ParametersParameters字段中指定靜態 JSON 和JsonPath語法的組合。如需詳細資訊,請參閱 將參數傳遞至服務 API

ApiEndpoint(必填)

指定您要呼叫的第三方 API 的 URL。若要將查詢參數附加至 URL,請使用欄位QueryParameters。下面的例子顯示了如何調用 Stripe API 來獲取所有客戶的列表。

"ApiEndpoint":"https://api.stripe.com/v1/customers"

您也可以使用JsonPath語法指定參考路徑,以選取包含第三方 API URL 的 JSON 節點。例如,假設您想要使用特定的客戶 ID 呼叫 Stripe 的其中一個 API。想像一下,您已經提供了以下狀態輸入。

{ "customer_id": "1234567890", "name": "John Doe" }

若要使用 Stripe API 擷取此客戶 ID 的詳細資訊,請指定ApiEndpoint如下列範例所示。此範例使用內建函數和參考路徑。

"ApiEndpoint.$":"States.Format('https://api.stripe.com/v1/customers/{}', $.customer_id)"

在運行時,Step Functions 解析的值ApiEndpoint如下。

https://api.stripe.com/v1/customers/1234567890
Method(必填)

指定您要用來呼叫第三方 API 的 HTTP 方法。您可以在 HTTP 任務中指定以下方法之一:獲取,POST,放置,刪除,補丁,選項或頭。

例如,若要使用 GET 方法,請依下列方式指定Method欄位。

"Method": "GET"

您也可以使用參考路徑在執行階段指定方法。例如 "Method.$": "$.myHTTPMethod"

Authentication(必填)

包含指ConnectionArn定如何驗證第三方 API 呼叫的欄位。 Step Functions支援ApiEndpoint使用的連線資源指定的驗證Amazon EventBridge。

ConnectionArn(必填)

指定EventBridge連接 ARN。

HTTP 任務需要EventBridge 連接,該連接可以安全地管理 API 提供者的身份驗證憑據。連線會指定用於授權第三方 API 的授權類型和認證。使用連線可協助您避免在狀態機器定義中進行硬式編碼 (例如 API 金鑰) 的密碼。在連接中,您也可以指定HeadersQueryParameters、和RequestBody參數。

當您建立 EventBridge 連線時,您需要提供驗證詳細資料。如需 HTTP 工作驗證如何運作的詳細資訊,請參閱HTTP 工作的驗證

下列範例顯示如何在 HTTP 工作定義中指定Authentication欄位。

"Authentication": { "ConnectionArn": "arn:aws:events:us-east-2:123456789012:connection/Stripe/81210c42-8af1-456b-9c4a-6ff02fc664ac" }
Headers (選用)

為 API 端點提供其他內容和中繼資料。您可以將標頭指定為字串或 JSON 陣列。

您可以在EventBridge連線中指定標頭,以及 HTTP 工作中的Headers欄位。我們建議您不要在Headers欄位中包含驗證詳細資料給您的 API 提供者。我們建議您將這些詳細資料納入您的EventBridge連線中。

Step Functions會將您在EventBridge連線中指定的標頭新增至您在 HTTP 工作定義中指定的標頭。如果定義和連接中存在相同的標頭鍵,則Step Functions使用在連接中為這些標頭指定的對應值。EventBridge如需如何Step Functions執行資料合併的詳細資訊,請參閱〈〉合併EventBridge連接和 HTTP 任務定義數據

下列範例會指定將包含在第三方 API 呼叫中的標頭:content-type

"Headers": { "content-type": "application/json" }

您也可以使用參考路徑在執行階段指定標頭。例如 "Headers.$": "$.myHTTPHeaders"

Step Functions設定User-AgentRange、和Host標頭。 Step Functions根據您正在調用的 API 設置Host標題的值。以下是這些標頭的範例。

User-Agent: Amazon|StepFunctions|HttpInvoke|us-east-1, Range: bytes=0-262144, Host: api.stripe.com

您不能在 HTTP 任務定義中使用以下標頭。如果您使用這些標頭,HTTP 工作會失敗並顯示States.Runtime錯誤。

  • A-IM

  • Accept-Charset

  • Accept-Datetime

  • 接受編碼

  • 快取控制

  • 連線

  • Content-Encoding

  • Content-MD5

  • 日期

  • Expect

  • Forwarded

  • 主機

  • HTTP2-Settings

  • If-Match

  • If-Modified-Since

  • If-None-Match

  • If-Range

  • If-Unmodified-Since

  • Max-Forwards

  • Origin

  • Pragma

  • Proxy-Authorization

  • Referer

  • Server

  • TE

  • 預告片

  • Transfer-Encoding

  • Upgrade

  • Via

  • 警告

  • X-向前-*

  • x-amz-*

  • x-amzn-*

QueryParameters (選用)

在 API URL 的末尾插入索引鍵值配對。您可以將查詢參數指定為字串、JSON 陣列或 JSON 物件。 Step Functions當它調用第三方 API 時,自動對查詢參數進行 URL 編碼。

例如,假設您想要呼叫 Stripe API 來搜尋以美元 (USD) 進行交易的客戶。想像一下,您已經提供了以下內容QueryParameters作為狀態輸入。

"QueryParameters": { "currency": "usd" }

在運行時,Step Functions 附加QueryParameters到 API URL,如下所示。

https://api.stripe.com/v1/customers/search?currency=usd

您也可以使用參考路徑在執行階段指定查詢參數。例如 "QueryParameters.$": "$.myQueryParameters"

如果您已在EventBridge連線中指定查詢參數,請Step Functions將這些查詢參數新增至您在 HTTP Task 定義中指定的查詢參數。如果定義和連接中存在相同的查詢參數鍵,則會針對這些標頭Step Functions使用在EventBridge連接中指定的對應值。如需如何Step Functions執行資料合併的詳細資訊,請參閱〈〉合併EventBridge連接和 HTTP 任務定義數據

Transform (選用)

包含RequestBodyEncodingRequestEncodingOptions欄位。默認情況下,Step Functions將請求主體作為 JSON 數據發送到 API 端點。

如果您的 API 提供者接受form-urlencoded要求內文,請使用Transform欄位來指定要求主體的 URL 編碼。您還必須將標content-type題指定為application/x-www-form-urlencoded。 Step Functions然後自動對您的請求主體進行 URL 編碼。

RequestBodyEncoding

指定請求主體的 URL 編碼。您可以指定下列其中一個值:NONEURL_ENCODED

  • NONE— HTTP 要求主體將會是RequestBody欄位的序列化 JSON。這是預設值。

  • URL_ENCODED— HTTP 要求主體將是欄位的 URL 編碼表單資料。RequestBody

RequestEncodingOptions

如果設RequestBodyEncoding定為,則決定要用於要求主體中陣列的編碼選項URL_ENCODED

Step Functions支援下列陣列編碼選項。如需這些選項及其範例的詳細資訊,請參閱在要求主體上套用 URL 編碼

  • INDICES— 使用陣列元素的索引值對陣列進行編碼。依預設,Step Functions會使用此編碼選項。

  • REPEAT— 為陣列中的每個項目重複索引鍵。

  • COMMAS— 將索引鍵中的所有值編碼為逗號分隔的值清單。

  • BRACKETS— 重複陣列中每個項目的索引鍵,並將括號 [] 附加至索引鍵,以指出它是陣列。

下列範例會設定要求主體資料的 URL 編碼。它還指定在請求主體中使用數組的COMMAS編碼選項。

"Transform": { "RequestBodyEncoding": "URL_ENCODED", "RequestEncodingOptions": { "ArrayFormat": "COMMAS" } }
RequestBody (選用)

接受您在狀態輸入中提供的 JSON 資料。在中RequestBody,您可以指定靜態 JSON 和JsonPath語法的組合。例如,假設您提供下列 state 輸入:

{ "CardNumber": "1234567890", "ExpiryDate": "09/25" }

若要在執行階段ExpiryDate在要求主體中使用CardNumber和的這些值,您可以在要求主體中指定下列 JSON 資料。

"RequestBody": { "Card": { "Number.$": "$.CardNumber", "Expiry.$": "$.ExpiryDate", "Name": "John Doe", "Address": "123 Any Street, Any Town, USA" } }

如果您要呼叫的第三方 API 需要要form-urlencoded求主體,您必須為要求主體資料指定 URL 編碼。如需詳細資訊,請參閱 在要求主體上套用 URL 編碼

HTTP 工作的驗證

HTTP 任務需要EventBridge 連接,該連接可以安全地管理 API 提供者的身份驗證憑據。連線會指定用於授權第三方 API 的授權類型和認證。使用連線可協助您避免在狀態機器定義中進行硬式編碼 (例如 API 金鑰) 的密碼。 EventBridge 連線支援基本、OAuth 和 API 金鑰授權配置。

當您建立 EventBridge 連線時,您需要提供驗證詳細資料。您也可以包含 API 授權所需的標頭、內文和查詢參數。您必須在任何呼叫協力廠商 API 的 HTTP 工作中包含連線 ARN。

當您建立連線並新增授權參數時, EventBridge 會在中建立密碼 AWS Secrets Manager。在這個秘密中,以加密的形式 EventBridge 存儲連接和授權參數。若要成功建立或更新連線,您必須使用具有 AWS 帳戶 使用 Secrets Manager 權限的連線。如需狀態機存取 EventBridge 連線所需IAM權限的詳細資訊,請參閱用於執行 HTTP 任務的 IAM 許可

下圖顯示如何使用EventBridge連線Step Functions處理第三方 API 呼叫的驗證。


                處理程序Step Functions使EventBridge用管理協力廠商 API 提供者驗證憑證的連線。 EventBridge會在中建立密碼,Secrets Manager以加密的形式儲存連線和授權參數。

合併EventBridge連接和 HTTP 任務定義數據

當您呼叫 HTTP 工作時,您可以在EventBridge連線和 HTTP 工作定義中指定資料。此資料包括HeadersQueryParameters、和RequestBody參數。在呼叫協力廠商 API 之前,Step Functions 會在所有情況下合併要求主體與連線主體參數,除非您的要求主體是字串且連線主體參數非空白。在此情況下,HTTP 工作會失敗並顯示States.Runtime錯誤。

如果 HTTP 工作定義和連線中指定了任何重複的索引鍵,會以EventBridge連線中的值Step Functions覆寫 HTTP 工作中的值。

下列清單說明如何在呼叫第三方 API 之前Step Functions合併資料:

  • 標頭 — Step Functions 將您在連線中指定的任何標頭新增至 HTTP 工作Headers欄位中的標頭。如果標頭鍵之間存在衝突,則Step Functions使用連接中為這些標頭指定的值。例如,如果您在 HTTP 任務定content-type義和EventBridge連接中指定了標頭,則Step Functions會使用連接中指定的content-type標頭值。

  • 查詢參數 — Step Functions 將您在連線中指定的任何查詢參數新增至 HTTP 作業QueryParameters欄位中的查詢參數。如果查詢參數鍵之間存在衝突,則會針對這些查詢參數Step Functions使用連線中指定的值。例如,如果您在 HTTP 任務定義和EventBridge連接中指定了maxItems查詢參數,則Step Functions會使用連接中指定的maxItems查詢參數值。

  • 主體參數

    • Step Functions將連線中指定的任何要求主體值新增至 HTTP 工作RequestBody欄位中的要求主體值。如果要求主體索引鍵之間發生衝突,請Step Functions使用連線中指定的要求主體值。例如,假設您在 HTTP 任務Mode定義和EventBridge連接RequestBody的中指定了一個字段。 Step Functions會使用您在連線中指定的Mode欄位值。

    • 如果您將請求主體指定為字符串而不是 JSON 對象,並且EventBridge連接也包含請求主體,則Step Functions無法合併在這兩個位置指定的請求主體。它使 HTTP 任務失敗並顯示States.Runtime錯誤。

    Step Functions應用所有轉換,並在完成請求主體的合併後序列化請求主體。

下列範例會設定 Headers HTTP 工作和EventBridge連線中的QueryParameters、和RequestBody欄位。

HTTP 任務定義

{ "Comment": "Data merging example for HTTP Task and EventBridge connection", "StartAt": "ListCustomers", "States": { "ListCustomers": { "Type": "Task", "Resource": "arn:aws:states:::http:invoke", "Parameters": { "Authentication": { "ConnectionArn": "arn:aws:events:us-east-1:123456789012:connection/Example/81210c42-8af1-456b-9c4a-6ff02fc664ac" }, "ApiEndpoint": "https:/example.com/path", "Method": "GET", "Headers": { "Request-Id": "my_request_id", "Header-Param": "state_machine_header_param" }, "RequestBody": { "Job": "Software Engineer", "Company": "AnyCompany", "BodyParam": "state_machine_body_param" }, "QueryParameters": { "QueryParam": "state_machine_query_param" } } } } }

EventBridge 連線

{ "AuthorizationType": "API_KEY", "AuthParameters": { "ApiKeyAuthParameters": { "ApiKeyName": "ApiKey", "ApiKeyValue": "key_value" }, "InvocationHttpParameters": { "BodyParameters": [ { "Key": "BodyParam", "Value": "connection_body_param" } ], "HeaderParameters": [ { "Key": "Header-Param", "Value": "connection_header_param" } ], "QueryStringParameters": [ { "Key": "QueryParam", "Value": "connection_query_param" } ] } } }

在此範例中,在 HTTP 工作和EventBridge連線中指定重複的索引鍵。因此,會使用連線中的值Step Functions覆寫 HTTP 工作中的值。下列程式碼片段會顯示Step Functions傳送至協力廠商 API 的 HTTP 要求。

POST /path?QueryParam=connection_query_param HTTP/1.1 Apikey: key_value Content-Length: 79 Content-Type: application/json; charset=UTF-8 Header-Param: connection_header_param Host: example.com Range: bytes=0-262144 Request-Id: my_request_id User-Agent: Amazon|StepFunctions|HttpInvoke|us-east-1 {"Job":"Software Engineer","Company":"AnyCompany","BodyParam":"connection_body_param"}

在要求主體上套用 URL 編碼

默認情況下,Step Functions將請求主體作為 JSON 數據發送到 API 端點。如果您的第三方 API 提供者需要要form-urlencoded求主體,您必須為要求主體指定 URL 編碼。 Step Functions然後根據您選取的 URL 編碼選項,自動對要求主體進行 URL 編碼。

您可以使用欄位Transform指定 URL 編碼。此欄位包含指定是否要為要求主體套用 URL 編碼的RequestBodyEncoding欄位。當您指定RequestBodyEncoding欄位時,請先Step Functions將 JSON 要求內文轉換為要form-urlencoded求內文,再呼叫第三方 API。您也必須將content-type標頭指定為,application/x-www-form-urlencoded因為接受 URL 編碼資料的 API 需要標content-type頭。

若要在要求主體中編碼陣列,請Step Functions提供下列陣列編碼選項。

  • INDICES— 重複陣列中每個項目的索引鍵,並將括號 [] 附加至索引鍵,以指出它是陣列。此括號包含陣列元素的索引。添加索引可幫助您指定數組元素的順序。依預設,Step Functions會使用此編碼選項。

    例如,如果您的請求主體包含以下數組。

    {"array": ["a","b","c","d"]}

    Step Functions將此數組編碼為以下字符串。

    array[0]=a&array[1]=b&array[2]=c&array[3]=d
  • REPEAT— 為陣列中的每個項目重複索引鍵。

    例如,如果您的請求主體包含以下數組。

    {"array": ["a","b","c","d"]}

    Step Functions將此數組編碼為以下字符串。

    array=a&array=b&array=c&array=d
  • COMMAS— 將索引鍵中的所有值編碼為逗號分隔的值清單。

    例如,如果您的請求主體包含以下數組。

    {"array": ["a","b","c","d"]}

    Step Functions將此數組編碼為以下字符串。

    array=a,b,c,d
  • BRACKETS— 重複陣列中每個項目的索引鍵,並將括號 [] 附加至索引鍵,以指出它是陣列。

    例如,如果您的請求主體包含以下數組。

    {"array": ["a","b","c","d"]}

    Step Functions將此數組編碼為以下字符串。

    array[]=a&array[]=b&array[]=c&array[]=d

用於執行 HTTP 任務的 IAM 許可

您的狀態機器執行角色必須具有 HTTP 工作的states:InvokeHTTPEndpointevents:RetrieveConnectionCredentialssecretsmanager:GetSecretValue、、和secretsmanager:DescribeSecret權限,才能呼叫第三方 API。以下 IAM 政策示例授予您的狀態機器角色調用 Stripe API 所需的最低權限。此 IAM 政策還授予狀態機器角色存取特定 EventBridge 連線的權限,包括存放在 Secrets Manager 中的此連線的密碼。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": "states:InvokeHTTPEndpoint", "Resource": "arn:aws:states:us-east-2:123456789012:stateMachine:myStateMachine", "Condition": { "StringEquals": { "states:HTTPMethod": "GET" }, "StringLike": { "states:HTTPEndpoint": "https://api.stripe.com/*" } } }, { "Sid": "Statement2", "Effect": "Allow", "Action": [ "events:RetrieveConnectionCredentials", ], "Resource": "arn:aws:events:us-east-2:123456789012:connection/oauth_connection/aeabd89e-d39c-4181-9486-9fe03e6f286a" }, { "Sid": "Statement3", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "arn:aws:secretsmanager:*:*:secret:events!connection/*" } ] }

HTTP 工作範例

下列狀態機器定義顯示包含HeadersQueryParametersTransform、和RequestBody參數的 HTTP 工作。HTTP 任務調用條紋 API,https://api.stripe.com/v1/invoices,以生成一個發票。HTTP 工作也會使用編碼選項指定要求主體的 URL INDICES 編碼。

請確定您已建立EventBridge連線。下面的例子顯示了使用 BASIC 身份驗證類型創建的連接。

{ "Type": "BASIC", "AuthParameters": { "BasicAuthParameters": { "Password": "myPassword", "Username": "myUsername" }, } }

請記住將斜體文本替換為特定於資源的信息。

{ "Comment": "A state machine that uses HTTP Task", "StartAt": "CreateInvoiceAPI", "States": { "CreateInvoiceAPI": { "Type": "Task", "Resource": "arn:aws:states:::http:invoke", "Parameters": { "ApiEndpoint": "https://api.stripe.com/v1/invoices", "Method": "POST", "Authentication": { "ConnectionArn": ""arn:aws:events:us-east-2:123456789012:connection/Stripe/81210c42-8af1-456b-9c4a-6ff02fc664ac" }, "Headers": { "Content-Type": "application/x-www-form-urlencoded" }, "RequestBody": { "customer.$": "$.customer_id", "description": "Monthly subscription", "metadata": { "order_details": "monthly report data" } }, "Transform": { "RequestBodyEncoding": "URL_ENCODED", "RequestEncodingOptions": { "ArrayFormat": "INDICES" } } }, "Retry": [ { "ErrorEquals": [ "States.Http.StatusCode.429", "States.Http.StatusCode.503", "States.Http.StatusCode.504", "States.Http.StatusCode.502" ], "BackoffRate": 2, "IntervalSeconds": 1, "MaxAttempts": 3, "JitterStrategy": "FULL" } ], "Catch": [ { "ErrorEquals": [ "States.Http.StatusCode.404", "States.Http.StatusCode.400", "States.Http.StatusCode.401", "States.Http.StatusCode.409", "States.Http.StatusCode.500" ], "Comment": "Handle all non 200 ", "Next": "HandleInvoiceFailure" } ], "End": true } } }

若要執行此狀態機器,請提供客戶 ID 作為輸入,如下列範例所示:

{ "customer_id": "1234567890" }

下面的例子顯示了Step Functions發送到條紋 API 的 HTTP 請求。

POST /v1/invoices HTTP/1.1 Authorization: Basic <base64 of username and password> Content-Type: application/x-www-form-urlencoded Host: api.stripe.com Range: bytes=0-262144 Transfer-Encoding: chunked User-Agent: Amazon|StepFunctions|HttpInvoke|us-east-1 description=Monthly%20subscription&metadata%5Border_details%5D=monthly%20report%20data&customer=1234567890

測試一個 HTTP 任務

您可以透過主控台、SDK 或使用 TestStateAPI AWS CLI 來測試 HTTP 工作。下列程序說明如何在Step Functions主控台中使用 TestState API。您可以反覆測試 API 要求、回應和驗證詳細資料,直到 HTTP 工作如預期般運作為止。

在主控台中測試 HTTP 工作Step Functions狀態
  1. 開啟「Step Functions」主控台

  2. 選擇建立狀態機以開始建立狀態機,或選擇包含 HTTP 工作的現有狀態機器。

    如果要在現有狀態機器中測試任務,請參閱步驟 4。

  3. 在工作流程設計模式工作室中,以視覺化方式設定 HTTP 工作。或者選擇「程式碼」模式,從本機開發環境中複製貼上狀態機器定義。

  4. 在 [設計] 模式中,選擇 [工作流程 Studio] 面Inspector板中的 [測試狀態]。

  5. 在「測試狀態」對話方塊中,執行下列操作:

    1. 對於執行角色,請選擇要測試狀態的執行角色。如果您沒有具有 HTTP 任務足夠權限的角色,請參在工作流程工作室中測試 HTTP 任務的角色閱建立角色。

    2. (選擇性) 提供測試所選狀態所需的任何 JSON 輸入。

    3. 對於「檢驗層級」,請保留 INFO 的預設選項。此級別顯示 API 調用的狀態和狀態輸出。這對於快速檢查 API 響應非常有用。

    4. 選擇 [開始測試]。

    5. 如果測試成功,狀態輸出會顯示在「測試狀態」對話方塊的右側。如果測試失敗,就會出現錯誤。

      在對話方塊的 [狀態詳細資料] 索引標籤中,您可以看到狀態定義和EventBridge連線的連結。

    6. 將「檢驗層級」變更為「追蹤」。此級別顯示原始 HTTP 請求和響應,並且對於驗證標頭,查詢參數和其他 API 特定的詳細信息非常有用。

    7. 選擇「揭露秘密」核取方塊。與 TRACE 結合使用時,此設定可讓您查看EventBridge連線所插入的敏感資料,例如 API 金鑰。您用來存取主控台的使用IAM者身分必須具有執行states:RevealSecrets動作的權限。如果沒有此權限,則會在您啟動測試時Step Functions擲回拒絕存取錯誤。如需設定states:RevealSecrets權限的IAM原則範例,請參閱IAM使用 TestState API 的權限

      下圖顯示成功之 HTTP 工作的測試。此狀態的 [檢驗層級] 設定為 [TRACE]。下圖中的 HTTP 要求與回應索引標籤會顯示第三方 API 呼叫的結果。

      
                                選取狀態的輸出,該狀態會成功測試 TRACE 層級。
    8. 選擇 [開始測試]。

    9. 如果測試成功,您可以在 HTTP 請求和響應選項卡下看到您的 HTTP 詳細信息。

不支援的 HTTP 工作回應

如果傳回的回應符合下列條件之一,HTTP 工作會失敗並顯示States.Runtime錯誤:

  • 回應包含application/octet-streamimage/*、或的內容類型標頭。video/* audio/*

  • 響應不能作為有效字符串讀取。例如,二進位或影像資料。