开发者社区> 问答> 正文

HTTP 协议都有哪些规则?



消息发送



消息发送 Request

  • 消息发送请求 URL 和 Method
请求 URLhttp://domain/message/
请求 MethodPOST
  • 消息发送 Head 参数列表
参数名称参数类型是否必须说明
AccessKeyString阿里云身份验证
SignatureString身份验证签名,生成方式:topic+”\n”+ ProducerId +”\n”+md5(body)+”\n”+time
ProducerIdString消息发布组 ID
isOrderboolean是否是顺序消息,需要和 shardingKey 组合使用。 isOrder为 true,shardingKey 有值才有效。相同的 Topic,shardingKey 相同的消息会发送到同一个queue里面。
shardingKeyString顺序消息 shardingKey
  • 消息发送 URL 参数列表
参数名称参数类型是否必须说明
topicString消息 Topic
timeoutLong超时时间,单位毫秒,取值范围1000-3000,默认3000
timeLong客户端时间戳(自1970-01-01, 00:00:00 GMT 经历的毫秒数,如果 MQ 收到时间戳已经过了15s,那么会返回403。)
tagString消息 Tag 长度:128字符以内,UTF-8 编码
keyString消息 Key 长度:128字符以内,UTF-8 编码
secondTopicStringMQTT 的 second Topic,qos为1,暂不支持从http设置其他qos
startdelivertimeLong定时消息时间(自1970-01-01,00:00:00 GMT 经历的毫秒数)。当 Topic 为顺序 Topic 时 startdelivertime 无效,请使用非顺序 Topic。

  • 消息发送 body
    消息体内容为 UTF-8 编码,长度限制 2M 以内。


消息发送-Response

Status code说明Body(JSON 格式)
201消息添加成功{“msgId”:”0A021F7300002A9F0000000006531D6F”,”sendStatus”:”SEND_OK”}
400请求失败{“code”:”BODY_TOO_BIG”,”info”:”Message body size exceeds the upper limit of 64KB”}
403鉴权失败无,请检查签名生成方式代码是否正确,AccessKey,SecretKey 填写是否正确,date 时间和互联网时间是否一致。
408请求超时无,请检查网络是否异常


消息接收



消息接收 Request

  • 消息接收请求 URL 和 Method
请求 URLhttp://domain/message/
请求 MethodGET
  • 消息接收 Head 参数列表
参数名称参数类型是否必须说明
AccessKeyString阿里云身份验证
SignatureString身份验证签名,生成方式:topic+”\n”+ ConsumerId +”\n”+time
ConsumerIdString消费者 ID
  • 消息接收 URL 参数列表
参数名称参数类型是否必须说明
topicString消息 Topic
timeoutLong超时时间,单位毫秒,取值范围20000-35000,默认35000。
timeLong客户端时间戳(自1970-01-01, 00:00:00 GMT 经历的毫秒数,如果 MQ 收到时间戳已经过了15s,那么会返回403。)
numint拉取返回消息数量,默认32。取值范围 1-32。


消息接收-Response

Status code说明Body(JSON 格式)
200消息读取成功[{“body”:”HelloMQ”,”bornTime”:”1418973464204”,   “msgHandle”:”X1BFTkRJTkdNU0dfXyVSRVRSWSUkbG9uZ2ppJENJRF9sb25namlfdGxvbmdqaQ==”,   “msgId”:”0A021F7300002A9F000000000647076D”,”reconsumeTimes”:1}]
400请求失败{“code”:”TOPIC_NOT_EXIST”,”info”:”topic not exist”}
403鉴权失败无,请检查签名生成方式代码是否正确,AccessKey,SecretKey 填写是否正确,date 时间和互联网时间是否一致。
408请求超时无,请检查网络是否异常。


消息删除



消息删除 Request

  • 消息删除请求 URL 和 Method
请求 URLhttp://domain/message/
请求 MethodDELETE
  • 消息删除 Head 参数列表
参数名称参数类型是否必须说明
AccessKeyString阿里云身份验证
SignatureString身份验证签名,生成方式:topic+”\n”+ ConsumerId + “\n” + msgHandle + ”\n” + time
ConsumerIdString消费者 ID
  • 消息删除 URL 参数列表
参数名称参数类型是否必须说明
topicString消息 Topic
msgHandleStringget 返回消息的 handle
timeLong客户端时间戳(自1970-01-01, 00:00:00 GMT 经历的毫秒数,如果 MQ 收到时间戳已经过了15s,那么会返回403。)


消息删除-Response

Status code说明Body(JSON 格式)
204消息删除成功无返回内容
400请求失败{“code”:”TOPIC_NOT_EXIST”,”info”:”topic not exist”}
403鉴权失败无,请检查签名生成方式代码是否正确,AccessKey,SecretKey 填写是否正确,date 时间和互联网时间是否一致。
[tr=rgb(239, 251, 255)][td]408 请求超时无,请检查网络是否异常。

关于消息接收与消息删除的说明


消息接收到之后需要在 15 分钟之内删除。如果在 15 分钟之后删除,消息可能会被重新接收到(消息没有消费成功会被再次投递)。多次超过 15 分钟才删除消息,会导致消息大量重复。因此,建议您在消息接收之后的短时间内处理完业务逻辑。

展开
收起
猫饭先生 2017-10-27 10:11:33 1798 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
阿里巴巴HTTP 2.0实践及无线通信协议的演进之路 立即下载
CDN助力企业网站进入HTTPS时代 立即下载
低代码开发师(初级)实战教程 立即下载