提出查询 API 请求 - Amazon Simple Queue Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

提出查询 API 请求

在本节中,您将了解如何构建 Amazon SQS 终端节点,如何使用 Amazon SQS 终端节点GETPOST请求和解释答复.

构建终端节点

为了使用 Amazon SQS 队列,您必须构建一个终端节点。有关 Amazon SQS 终端节点的信息,请参阅中的以下页面。Amazon Web Services 一般参考

每个 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 请求的签名。有关更多信息,请参阅 。签署 AWS API 请求中的Amazon Web Services 一般参考

提出 GET 请求

Amazon SQSGET的请求被构建为由以下部分组成的 URL:

  • 终端节点— 作为请求执行对象的资源 (队列名称和 URL),例如:https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue

  • 操作操作在终端节点上执行的操作。终端节点与操作之前用问号 (?) 分隔,例如:?Action=SendMessage&MessageBody=Your%20Message%20Text

  • 参数— 任何请求参数 — 每个参数之前用 “和” 符号 (&),例如:&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 请求

Amazon SQSPOST请求在 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 POST请求,该请求向 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 请求添加其他项目。