MQTT服务器EMQv2.0--HTTP接口api(python3 调试笔记)
EMQ使用HTTP请求出现401--需要进行身份验证问题
管理监控API (REST API)
EMQ服务器功能真是够强大的,还可以支持各种插件的扩展,而且本身还自带有HTTP管理监控API(REST API)
用户可以通过 REST API 查询 MQTT 客户端连接(Clients)、会话(Sessions)、订阅(Subscriptions)和路由(Routes)信息,还可以检索和监控服务器的性能指标和统计数据。
大家也可以看下官方的详细文档http://emqtt.com/docs/v2/rest.html,下面是我使用python3用来调试HTTPapi的一些使用体会和使用方法。
环境是:python3,windows10 x64,EMQv2.0
1.Basic 认证
在浏览器上访问REST API的时候,需要进行身份验证,也就是要输入用户名和密码
EMQ的REST API 采用 HTTP Basic 认证(Authentication),所以用python请求的时候,需要添加auth,
否则HTTP请求就会返回401错误信息
2.简单get 请求---获取全部节点的基本信息
下面就用python进行一个简单的get请求获取全部节点的基本信息
API 定义:
GET api/v2/management/nodes
python请求信息如下:
返回状态码200,表示请求成功
其余的get请求都是按照如上所示即可。
3.简单post请求 --发布消息
API 定义:
POST api/v2/mqtt/publish
请求参数:
{ "topic" : "hello", "payload": "hello,world!", "qos": 0, "retain" : false, "client_id":"mqttjs_9f2b260122" }
注解
topic 参数必填,其他参数可选。payload 默认值空字符串,qos 默认为 0,retain 默认为 false,client_id 默认为 ‘http’。
python请求信息:
问题:
1.官方提供的参数中,"retain":false 竟然报错,然后这个问题卡住了很久。
2.请求正确了,但是返回的内容是params erroe ,说明参数格式错误 :
所以,最后正确的请求返回信息应该为:
EMQ Dashboard web控制台中,就可以成功的看到了消息publish了
end.....