智能车锁的项目想着可以用HTTP请求服务器数据去更新车锁臂状态,这样服务器端可能会比socket连接稳定一些于是摸索了半天使用GPRS模块进行HTTP请求,摸索出来后才想起来这种请求-响应的形式不适合这个项目,因为要实时查询服务器的状态,会无端增加数据流量的消耗,但还是记录一下方便大家参考。
PS:不是所有的GPRS模块都可以使用HTTP请求,因为有些模块没有HTTP协议栈(如kingcomG3524),市场上比较流行的SIM900(SIM800)模块是可以做HTTP请求的,下面就贴出如何用AT指令向服务器请求数据。
/**************初始化指令**************/ AT OK /*IP应用设置*/ AT+SAPBR=1,1 OK /*HTTP初始化*/ AT+HTTPINIT OK /*HTTP参数设置*/ AT+HTTPPARA="CID",1 OK /***************************************/ /**************HTTP请求指令*************/ /*HTTP参数设置(访问URL地址)*/ AT+HTTPPARA="URL","http://19144sq587.51mypc.cn:38269/GPRSPro/GprsServlet" OK /*HTTP访问方式 0:GET ; 1:POST*/ AT+HTTPACTION=0 OK +HTTPACTION:0,200,298 //请求方式,HTTP状态码,数据长度 /*读取数据 数据起始位置,数据结束位置*/ AT+HTTPREAD=0,214 +HTTPREAD:214 //读取的数据长度 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD><TITLE>A Servlet</TITLE></HEAD> <BODY> This is class com.gprs.servlet.GprsServlet, using the GET method </BODY> </HTML> OK /***************************************/
最后可返回服务器respond的数据,可详细参考SIM900指令集HTTP部分,大概在192页开始。
上面有什么说的不准确的还请大佬指正。