如何用sim800模块AT命令发送POST请求?与AT
问题描述:
我发送POST请求命令,使用sim800模块使用python如何用sim800模块AT命令发送POST请求?与AT
g = serial.Serial("/dev/ttyUSB0", baudrate=9600, timeout=2)
g.write('AT+HTTPPARA="URL","http://server/path"')
print g.read(128)
OK
g.write('AT+HTTPPARA="CONTENT","application/json"')
print g.read(128)
OK
g.write('AT+HTTPDATA=150,5000'+'\r\n')
print g.read(128)
DOWNLOAD行
g.write("{\"data\":\"123\"}"+'\r\n')
print g.read(128)
{ “数据”: “123”} ERROR
g.write('AT+HTTPACTION=1' + '\r\n') # -> POST session start
print g.read(128)
+ HTTPACTION:1,400,31
我想要t o发送为json格式,但是当我使用python执行这个命令时,它显示像这样的输出它没有采用json格式我已经尝试使用json.loads(json.dumps(data))
,但它仍然没有发送到服务器端的服务器我不会在request.body对象中获取数据发布请求)
如何在发布数据中以json格式发送数据? 或哪些配置需要发布数据?
注:GPRS
答
我已经配置了GSM模块使用json.dumps解决()将JSON数据转换为字符串,并以request.body对象,以获取在服务器端
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
g.write('AT+HTTPPARA="CONTENT","application/json"')
print g.read(128)
OK
g.write('AT+HTTPDATA=1500,5000'+'\r\n')
print g.read(128)
下载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
当你不是[阅读和解析](http:// stackoverflow。com/a/33266839/23118)从调制解调器返回的响应,在发送下一个命令之前等待最终结果代码。如果这在大多数情况下都有效,你真是非常幸运。你应该明确解决这个问题。 – hlovdal