本接口用于发送消息到指定的消息队列。普通消息发送到消息队列随即可被消费。如果生产者发送一个消息不想立即被消费者消费(典型的使用场景为定期任务),那么可以在发送消息时设置DelaySeconds大于0。此时消息进入队列状态为Delayed,不能被消费者消费,到DelaySeconds设置的时间后消息变成Active状态才可以被消费。

Request

Request的构造主要由以下几个部分组成:

  • 请求行

    POST /$queueName/messages HTTP/1.1

  • 特有Request Header

    无,请参见公共参数

  • Request Body
    Request Body为XML格式,其中包含创建Message的属性。
    参数名称 说明 参数值
    MessageBody 必选,消息正文。 UTF-8字符集。
    DelaySeconds 可选,DelaySeconds指定的秒数延后可被消费,单位为秒。 0s~604800s(7天)范围内某个整数值,默认值为0s。
    Priority 可选,指定消息的优先级权值。优先级越高的消息,越容易更早被消费。 取值范围1~16(其中1为最高优先级),默认优先级为8。
    说明 发送消息时指定DelaySeconds优先级高于延时消息队列的DelaySeconds属性,即两个DelaySeconds属性设置的值不同时以发送消息时指定的值为准。

Response

返回消息由返回状态行,HTTP头和消息体三部分组成:

  • HTTP Status Code

    HTTP/1.1 201 Created

  • 特有Response Header

    无,请参见公共参数

  • Response Body

    返回的结果为XML格式,返回Message的MessageId和MessageBodyMD5子元素。

    参数名称 说明
    MessageId 消息编号,在一个Queue唯一。
    MessageBodyMD5 消息正文的MD5值。

Special Error

错误代码 错误消息 状态码
QueueNotExist The queue name you provided is not exist. 404
MalformedXML The XML you provided was not well-formed. 400
InvalidArgument The value of Element should between Low and High seconds/bytes. 400
  • 请求示例
        POST /$queueName/messages HTTP/1.1
        Host: $AccountId.mqs-cn-hangzhou.aliyuncs.com
        Date: Wed, 18 Mar 2012 12:00:00 GMT
        Content-Length:500
        Content-Type:text/xml;charset=utf-8
        x-mqs-version: 2014-07-08
        Authorization: MQS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE
    
        <?xml version="1.0” encoding=”UTF-8” ?>
        <Message xmlns=”http://mqs.aliyuncs.com/doc/v1/”>
            <MessageBody>Base64 Encoded Result</MessageBody>
            <DelaySeconds>60</DelaySeconds>
            <Priority>1</Priority>
        </Message>            
  • 返回示例
        HTTP/1.1 201Created
        Connection:close
        Content-Length:120
        Content-Type:text/xml;charset=utf-8
        x-mqs-request-id:512B2A634403E52B1956133E 
        x-mqs-version:2015-06-06
    
        <?xml version="1.0” encoding=”UTF-8” ?>
        <Message xmlns=”http://mqs.aliyuncs.com/doc/v1/”>
            <MessageId>5F290C926D472878-2-14D9529A8FA-200000001</MessageId>
            <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6D8C7</MessageBodyMD5>
        </Message>