

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

# 在 Amazon SQS 中使用查詢通訊協定提出 AWS 查詢 API 請求
<a name="sqs-making-api-requests-xml"></a>

本主題說明如何建構 Amazon SQS 端點、提出 GET 和 POST 請求，以及解譯回應。

## 建構端點
<a name="sqs-api-constructing-endpoints"></a>

為了能夠使用 Amazon SQS 佇列，您必須建構端點。如需 Amazon SQS 端點的相關資訊，請參閱 *Amazon Web Services 一般參考* 中的以下頁面：
+ [區域端點](https://docs.aws.amazon.com/general/latest/gr/rande.html#sqs_region)
+ [Amazon Simple Queue Service 端點和配額](https://docs.aws.amazon.com/general/latest/gr/sqs-service)

每個 Amazon SQS 端點都是獨立的。例如，若有兩個佇列同樣名為 *MyQueue*，其中一個佇列具有端點 `sqs.us-east-2.amazonaws.com`，而另一個佇列具有端點 `sqs.eu-west-2.amazonaws.com`，這兩個佇列便不會相互共享任何資料。

以下是某個端點提出請求建立佇列的範例。

```
https://sqs.eu-west-2.amazonaws.com/   
?Action=CreateQueue
&DefaultVisibilityTimeout=40
&QueueName=MyQueue
&Version=2012-11-05
&AUTHPARAMS
```

**注意**  
佇列名稱和佇列 URL 區分大小寫。  
*`AUTHPARAMS`* 的結構取決於 API 請求的簽署。如需詳細資訊，請參閱《*Amazon Web Services 一般參考*》中的[簽署 AWS API 請求](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)。

## 提出 GET 請求
<a name="structure-get-request"></a>

Amazon SQS GET 請求的架構是由以下各部分組成的 URL：
+ **端點** - 請求所作用的資源 ([佇列名稱和 URL](sqs-queue-message-identifiers.md#queue-name-url))，例如：`https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue`
+ **動作** – 要在端點上執行的[動作](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_Operations.html)。端點與動作之間用問號 (`?`) 隔開，例如：`?Action=SendMessage&MessageBody=Your%20Message%20Text`
+ **參數** - 任何請求的參數。每個參數以 ampersand (`&`) 分隔，例如： `&Version=2012-11-05&AUTHPARAMS`

以下是提出 GET 請求將訊息傳送至 Amazon SQS 佇列的範例。

```
https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue
?Action=SendMessage&MessageBody=Your%20message%20text
&Version=2012-11-05
&AUTHPARAMS
```

**注意**  
佇列名稱和佇列 URL 區分大小寫。  
由於 GET 請求是 URL，所有參數值必須以 URL 編碼處理。由於 URL 不允許空格，每個空格都按 URL 編碼處理為 `%20` 為便於閱讀，範例的其餘部分並未以 URL 編碼處理。

## 提出 POST 請求
<a name="structure-post-request"></a>

Amazon SQS POST 請求是以 HTTP 請求本文的形式傳送查詢參數。

以下是 `Content-Type` 設為 `application/x-www-form-urlencoded` 的 HTTP 標頭範例。

```
POST /123456789012/MyQueue HTTP/1.1
Host: sqs.us-east-2.amazonaws.com
Content-Type: application/x-www-form-urlencoded
```

標頭後面接著的是 `[form-urlencoded](https://www.w3.org/MarkUp/html-spec/html-spec_8.html#SEC8.2)` GET 請求，其將傳送訊息至 Amazon SQS 佇列。每個參數之間用 `&` 符號隔開。

```
Action=SendMessage
&MessageBody=Your+Message+Text
&Expires=2020-10-15T12%3A00%3A00Z
&Version=2012-11-05
&AUTHPARAMS
```

**注意**  
僅需要有 `Content-Type` HTTP 標頭。`AUTHPARAMS` 的作用與 GET 請求的情形相同。  
視用戶端的 HTTP 版本而定，HTTP 用戶端可能會對 HTTP 請求增加其他項目。