关于 SIM900A访问HTTP的方法总结
2017-08-11 14:52
357 查看
看过两篇博客后综合整理,低调一点标注转载吧!
本篇博客是关于SIM800、SIM900模块如何访问网页的方式:比如后面提到的 get/Post 方式 ,废话少说下面开始我的表演,来点掌声撒~
所谓嵌入式,就是用最精简的资源干出最伟大的事,靠高配是撑不了多久的,,,
最近做项目,使用Arduino控制设备,读取数据,然后通过移动网络传送到服务器。
我选用的是正点原子的SIM900A模块。在服务器部署了一个监听程序,Arduino控制SIM900A通过TCP方式把数据发送到服务器。
某天,突然想,SIM900A能不能访问网页呢?如果能,直接把数据通过网页提交上去不就更简单了嘛。
于是乎,果断咨询卖家,得到的答复是“理论上可行,但是没测试过”。
好吧,那只能百度了。不百不知道,一百吓一跳。全网好像没有一个完整的SIM900A访问HTTP的例子。恰好,Google又访问不了(想做个好孩子,不FQ)。只能自己帮自己了。
1、要访问网页,总得先上网吧。
那手机是怎么上网的呢?打开“数据连接”就行了吧。恩。可是手机怎么知道怎么接入网络呢?想起当年用Hero的时候,无数次设置APN,如下图。
看明白了吗?手机中有默认的网络接入点,当打开“数据连接”的时候,手机会接入指定的接入点。那么,再回过头来看AT+SAPBR指令的参数,原来如此。那我们执行如下的AT指令:
(1)AT+SAPBR=3,1,"APN","cmnet":这条指令设置接入点名称(第4张图第二行)。
(2)AT+SAPBR=3,1,"PHONENUM","12345678900":设置电话号码。
其它的参数不用这是了吧,因为第4张图上也没有设置。
(3)AT+SAPBR=4,1:查询参数设置。
(4)AT+SAPBR=5,1:将本次的参数设置保存到RAM,下次就不用设置了,直接打开就行。
4条指令中,那个“1”是什么意思?其实,我也没搞的很清楚,就算是个标识吧。
(5)AT+SAPBR=1,1:打开承载,我的理解是你打开了“数据连接”。
(6)AT+SAPBR=2,1:这条命令可以查看到接入网络的状态还有IP地址。
好了,现在我已经接入网络了(返回的第2个参数是1表示已经连接),我的IP地址是“10.129.8.149”(第3个参数)。
2、没有UC,我咋访问网页呢?
慢慢来。先看看“第10章HTTP应用AT指令”,一共7条指令。基本思路就是先初始化,然后设置参数,激活HTTP,等到相应,然后再读返回的数据,最后关闭。下面,我要访问我们学院的网站了:http://www.dyxy.net。
(1)AT+HTTPINIT:初始化HTTP。
(2)AT+HTTPPARA="CID","1":设置承载上下文标识,和上面一致。
(3)AT+HTTPPRAR="URL","http://www.dyxy.net":设置你要访问的那个网站,要加上“http://”协议的啊。
其它的参数我们暂且不去设置。
(4)AT+HTTPACTION=0:激活HTTP请求,0表示get方式、1表示post方式、2表示head(这个不知道啥意思)。
这个时候要耐心等,在OK之后会返回HTTP的状态。我的状态如下:
看到“200”了吗?这说明访问成功了。那个“0”表示你的访问方式,刚才我们用get去访问的。那最后的那个“30188”是什么呢?恩,它是DataLen,也就是用字节表示的网页的内容的长度。
好吧,那怎么获取网页的内容呢?AT+HTTPREAD指令现在登场。
(5)AT+HTTPREAD=1,30188:读取HTTP相应数据。1表示从第一个字节开始读,读30188个字节。
如果我们操作正确、且我们知道HTML是什么的话,我们会惊讶的发现,网页的内容被读出来了。哈哈哈哈!
(6)AT+HTTPTERM:访问完了,记得终止HTTP服务啊。
(7)AT+SAPBR=0,1:最后别忘记关闭承载。
OK,这样,我们就实现了SIM900A通过GET方式访问网页的问题。
当然,这是非常简单的操作。我们肯定会遇到这样那样的问题,比如:
(1)AT+HTTPREAD指令最多能读出102400字节的数据,那如果某个网页返回的数据量超过了102400该怎么办?
(2)怎么通过POST方式提交数据?
等等......
- - - - - - - - - - - 我是一条华丽的分割线 - - - - - - - - - - - - - - -
GET 的请求:
[html] view
plain copy
AT+HTTPTERM
AT+CSQ
AT+CGATT?
AT+SAPBR=3,1,"CONTYPE","GPRS"
AT+SAPBR=1,1
AT+HTTPINIT
AT+HTTPPARA="URL","http://127.0.0.1:3000/v1/test"
AT+HTTPACTION=0 //发送GET请求,注意返回的状态码
AT+HTTPREAD //read data
POST请求:
[html] view
plain copy
AT+HTTPTERM
AT+CSQ
AT+CGATT?
AT+SAPBR=3,1,"CONTYPE","GPRS"
AT+SAPBR=1,1
AT+HTTPINIT
AT+HTTPPARA="URL","http://<span style="font-family: Arial, Helvetica, sans-serif;">127.0.0.1:300</span><span style="font-family: Arial, Helvetica, sans-serif;">0/v1/mbdevices?devsn=12345678&devtype=abc"</span>
AT+HTTPACTION=1 //发送POST数据,注意返回的状态码
AT+HTTPREAD //read data
本篇博客是关于SIM800、SIM900模块如何访问网页的方式:比如后面提到的 get/Post 方式 ,废话少说下面开始我的表演,来点掌声撒~
所谓嵌入式,就是用最精简的资源干出最伟大的事,靠高配是撑不了多久的,,,
最近做项目,使用Arduino控制设备,读取数据,然后通过移动网络传送到服务器。
我选用的是正点原子的SIM900A模块。在服务器部署了一个监听程序,Arduino控制SIM900A通过TCP方式把数据发送到服务器。
某天,突然想,SIM900A能不能访问网页呢?如果能,直接把数据通过网页提交上去不就更简单了嘛。
于是乎,果断咨询卖家,得到的答复是“理论上可行,但是没测试过”。
好吧,那只能百度了。不百不知道,一百吓一跳。全网好像没有一个完整的SIM900A访问HTTP的例子。恰好,Google又访问不了(想做个好孩子,不FQ)。只能自己帮自己了。
1、要访问网页,总得先上网吧。
那手机是怎么上网的呢?打开“数据连接”就行了吧。恩。可是手机怎么知道怎么接入网络呢?想起当年用Hero的时候,无数次设置APN,如下图。
看明白了吗?手机中有默认的网络接入点,当打开“数据连接”的时候,手机会接入指定的接入点。那么,再回过头来看AT+SAPBR指令的参数,原来如此。那我们执行如下的AT指令:
(1)AT+SAPBR=3,1,"APN","cmnet":这条指令设置接入点名称(第4张图第二行)。
(2)AT+SAPBR=3,1,"PHONENUM","12345678900":设置电话号码。
其它的参数不用这是了吧,因为第4张图上也没有设置。
(3)AT+SAPBR=4,1:查询参数设置。
(4)AT+SAPBR=5,1:将本次的参数设置保存到RAM,下次就不用设置了,直接打开就行。
4条指令中,那个“1”是什么意思?其实,我也没搞的很清楚,就算是个标识吧。
(5)AT+SAPBR=1,1:打开承载,我的理解是你打开了“数据连接”。
(6)AT+SAPBR=2,1:这条命令可以查看到接入网络的状态还有IP地址。
好了,现在我已经接入网络了(返回的第2个参数是1表示已经连接),我的IP地址是“10.129.8.149”(第3个参数)。
2、没有UC,我咋访问网页呢?
慢慢来。先看看“第10章HTTP应用AT指令”,一共7条指令。基本思路就是先初始化,然后设置参数,激活HTTP,等到相应,然后再读返回的数据,最后关闭。下面,我要访问我们学院的网站了:http://www.dyxy.net。
(1)AT+HTTPINIT:初始化HTTP。
(2)AT+HTTPPARA="CID","1":设置承载上下文标识,和上面一致。
(3)AT+HTTPPRAR="URL","http://www.dyxy.net":设置你要访问的那个网站,要加上“http://”协议的啊。
其它的参数我们暂且不去设置。
(4)AT+HTTPACTION=0:激活HTTP请求,0表示get方式、1表示post方式、2表示head(这个不知道啥意思)。
这个时候要耐心等,在OK之后会返回HTTP的状态。我的状态如下:
看到“200”了吗?这说明访问成功了。那个“0”表示你的访问方式,刚才我们用get去访问的。那最后的那个“30188”是什么呢?恩,它是DataLen,也就是用字节表示的网页的内容的长度。
好吧,那怎么获取网页的内容呢?AT+HTTPREAD指令现在登场。
(5)AT+HTTPREAD=1,30188:读取HTTP相应数据。1表示从第一个字节开始读,读30188个字节。
如果我们操作正确、且我们知道HTML是什么的话,我们会惊讶的发现,网页的内容被读出来了。哈哈哈哈!
(6)AT+HTTPTERM:访问完了,记得终止HTTP服务啊。
(7)AT+SAPBR=0,1:最后别忘记关闭承载。
OK,这样,我们就实现了SIM900A通过GET方式访问网页的问题。
当然,这是非常简单的操作。我们肯定会遇到这样那样的问题,比如:
(1)AT+HTTPREAD指令最多能读出102400字节的数据,那如果某个网页返回的数据量超过了102400该怎么办?
(2)怎么通过POST方式提交数据?
等等......
- - - - - - - - - - - 我是一条华丽的分割线 - - - - - - - - - - - - - - -
GET 的请求:
[html] view
plain copy
AT+HTTPTERM
AT+CSQ
AT+CGATT?
AT+SAPBR=3,1,"CONTYPE","GPRS"
AT+SAPBR=1,1
AT+HTTPINIT
AT+HTTPPARA="URL","http://127.0.0.1:3000/v1/test"
AT+HTTPACTION=0 //发送GET请求,注意返回的状态码
AT+HTTPREAD //read data
POST请求:
[html] view
plain copy
AT+HTTPTERM
AT+CSQ
AT+CGATT?
AT+SAPBR=3,1,"CONTYPE","GPRS"
AT+SAPBR=1,1
AT+HTTPINIT
AT+HTTPPARA="URL","http://<span style="font-family: Arial, Helvetica, sans-serif;">127.0.0.1:300</span><span style="font-family: Arial, Helvetica, sans-serif;">0/v1/mbdevices?devsn=12345678&devtype=abc"</span>
AT+HTTPACTION=1 //发送POST数据,注意返回的状态码
AT+HTTPREAD //read data
相关文章推荐
- SIM900A访问HTTP的简单方法
- SIM900A访问HTTP的简单方法
- 关于ajax的XMLHttpRequest对象的方法总结
- 使用GPRS模块SIM900A通过HTTP上传数据到云服务器的方法
- 关于androidstuio运行程序遇到 Error:(11, 8) 错误: 无法访问HttpEntity 找不到org.apache.http.HttpEntity的类文件解决方法
- HTTP访问转HTTPS访问的总结--关于本地https访问以及服务器https访问配置
- 关于Jquery中ajax方法data参数用法的总结http://www.cnblogs.com/tim190/archive/2010/10/20/1856523.html
- 关于HTTP 转 HTTPS 的方法----总结
- 多态情况下,关于属性和方法的访问总结
- 关于android Http访问,上传,用了三个方法
- 关于android Http访问,上传,用了三个方法
- 关于iOS 数据请求ASIHttpRequest方法的总结
- 关于Android网络访问请求的一些总结 包括HttpClient HttpUrlConnection Volley
- 关于android Http访问,上传,用了三个方法
- 关于局域网共享访问问题总结
- VLAN间访问控制的几种方法总结.
- 安装完vs.2005之后,重新安装iis后无法使用http方式访问asp.net工程的页面的问题的解决方法
- 关于华为各种型号交换机端口镜像配置方法总结
- [原创/讨论][windows核心编程一外传]关于访问虚拟地址0的方法。
- 关于日语学习方法的总结