如何用sim800模块AT命令发送POST请求?

2024-06-26 00:24:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用sim800模块使用python发送带有AT命令的post请求

g = serial.Serial("/dev/ttyUSB0", baudrate=9600, timeout=2)
g.write('AT+HTTPPARA="URL","http://server/path"')
print g.read(128)

OK

^{pr2}$

OK

g.write('AT+HTTPDATA=150,5000'+'\r\n')
print g.read(128)

DOWNLOAD OK

g.write("{\"data\":\"123\"}"+'\r\n')
print g.read(128)

{"data":"123"} ERROR

g.write('AT+HTTPACTION=1' + '\r\n')  # -> POST session start
print g.read(128)

+HTTPACTION:1,400,31

我想以json格式发送,但是当我使用python执行这个命令时,它显示的输出是这样的,它不是采用json格式的,我已经尝试过使用json.loads(json.dumps(data))但是它仍然没有发送到服务器端,我无法获取数据请求.正文对象(根据post请求)

如何在post data中发送json格式的数据?? 或者需要哪种配置来发布数据?在

注意:我已经为GPRS配置了GSM模块


Tags: 模块数据命令jsonreaddata格式serial
1条回答
网友
1楼 · 发布于 2024-06-26 00:24:17

使用解决json.dumps文件()将json数据转换为字符串并在服务器端请求.正文对象

data = {"param":"value","param2":0.01}
g = serial.Serial("/dev/ttyUSB0", baudrate=9600, timeout=2)
g.write('AT+HTTPPARA="URL","http://server/path"')
print g.read(128)

OK

^{pr2}$

OK

g.write('AT+HTTPDATA=1500,5000'+'\r\n')
print g.read(128)

DOWNLOAD OK

g.write(json.dumps(data))
print g.read(128)

OK

g.write('AT+HTTPACTION=1' + '\r\n')  
print g.read(128)

+AT+HTTPACTION:1,200,31

相关问题 更多 >