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

如何用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

+0

当你不是[阅读和解析](http:// stackoverflow。com/a/33266839/23118)从调制解调器返回的响应,在发送下一个命令之前等待最终结果代码。如果这在大多数情况下都有效,你真是非常幸运。你应该明确解决这个问题。 – hlovdal

我已经配置了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