OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 18013|回复: 37

GPRS模块向网页post数据,服务器那边收不到

[复制链接]

2

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2014-1-10
在线时间
58 小时
发表于 2015-2-9 14:41:31 | 显示全部楼层 |阅读模式
5金钱
我使用的SIM908模块,在采集温度,湿度等一系列数据后向网页端发送post请求,网页端接收到后会显示出来,为了验证服务器端的接收是OK的,首先使用Fiddler Web debugger网页抓包工具,模拟向网页端发送数据(客户的项目,具体网址不便透露)


以上是我模拟发送,发送成功后会返回200
先介绍一下服务器端的API,目前我只使用了POST,其他的请求还没有使用到,见下图,




我的AT指令顺序如下
[mw_shl_code=c,true]AT AT+CSQ AT+CSTT="CMNET" AT+CIICR AT+CIFSR AT+CIPSTART="TCP","138.***.***.40","80" AT+CIPSEND -> POST http://hokky.*******.net/api/mygsm HTTP/1.1 Host:hokky.*********.net Content-Length: 311 ContentType:application/json {"DeviceId":8,"BoardId":"11","SimId":"3","ProductSerial":"4","temperature":"5","humidity":"6","weight":"7","gpslong":"8","gpslat":"9","rangesensor":"10","picture":"QEA="} 1A 返回结果 SEND OK HTTP/1.1 400 Bad Request Content-Type: text/html; charset=us-ascii Server: Microsoft-HTTPAPI/2.0 Date: Mon, 09 Feb 2015 05:23:19 GMT Connection: close Content-Length: 311 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> <HTML><HEAD><TITLE>Bad Request</TITLE> <META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD> <BODY><h2>Bad Request</h2> <hr><p>HTTP Error 400. The request is badly formed.</p> </BODY></HTML>[/mw_shl_code]
在以上尝试中,不知道是因为我用的串口助手的原因还是其他的原有,POST报文如果中间有换行,只能发送第一行的数据,我把换行全部换成了空格
我又尝试了另外一种方法 直接使用http指令,连接网络那些我就不写了,
[mw_shl_code=c,true]AT+HTTPINIT AT+HTTPPARA="URL","http://hokky.******.net/api/mygsm" AT+HTTPPARA="CONTENT","application/json" AT+HTTPPARA="REDIR","1" AT+HTTPPARA="TIMEOUT","450" AT+HTTPDATA=345,5000 AT+SAPBR=3,1,"APN","cmnet" AT+SAPBR=1,1 AT+SAPBR=2,1 +SAPBR: 1,1,"10.43.144.117"[/mw_shl_code]
这种方式我都不知道把那些个参数放在哪里才好???,也试过了很多,但也是报错
最后我直接把post的参数放在链接里面
[mw_shl_code=c,true]AT+HTTPPARA="URL","http://hokky.azurewebsites.net/api/mygsm/post/? DeviceId=8&&BoardId=56&&SimId=9&&roductSerial=85&&temperature=23&&humidity=25&&weight=6&&gpslong= 667&&gpslat=988&&rangesensor=78&&rangesensor=56&&picture=QEA" AT+HTTPACTION=1[/mw_shl_code]
这个时候会网页端会返回参数,但是大多数情况下是不返回的?有没有一种工具可以明码监听发送给网页的数据,比如我随便发个什么,我这边能实际看到网页端接收到的数据,网页端会自动解析我发送的数据,无效的报文不会被处理,但是我现在不知道网页端收到的什么东西,又或者压根什么都没有收到。
之前只使用过GSM模块来发送短信,拨打电话,高级的应用也没使用过,坛子里有没有搞过这方面的大神,想请教一下?


最佳答案

查看完整内容[请看2#楼]

我的问题已经解决了,网上这方面的资料太少了,主要是参考了之前论坛前几天有一个post数据的图片,改了一下自己的格式,还有就是重新修改了自己连接GPRS的指令,贴上我的指令,说一下自己犯的错误和经验,post后面不要直接就是网页地址,应该是分链接的地址,host才是主机的地址,Content-Type的格式要与自己要传的参数格式一致,最后面的数据要连贯,不要有空格,数据长度也要一一对应,post之前,可以先使用Fiddler debug模拟pos ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2014-1-10
在线时间
58 小时
 楼主| 发表于 2015-2-9 14:41:32 | 显示全部楼层
我的问题已经解决了,网上这方面的资料太少了,主要是参考了之前论坛前几天有一个post数据的图片,改了一下自己的格式,还有就是重新修改了自己连接GPRS的指令,贴上我的指令,说一下自己犯的错误和经验,post后面不要直接就是网页地址,应该是分链接的地址,host才是主机的地址,Content-Type的格式要与自己要传的参数格式一致,最后面的数据要连贯,不要有空格,数据长度也要一一对应,post之前,可以先使用Fiddler debug模拟post请求,看对方有没有接收到数据,感谢论坛
[mw_shl_code=c,true]AT AT+CSQ AT+CGCLASS="B" AT+CGDCONT=1,"IP","CMNET" AT+CGATT=1 AT+CIPCSGP=1,"CMNET" AT+CIPHEAD=1 AT+CIPSTART="TCP","138.**.***.40","80" AT+CIPSEND ->OST /Api/Mygsm HTTP/1.1 Content-Type:application/json Host:hokky.**********.net Content-Length:194 Connection:Keep-Alive {"DeviceId":"6","BoardId":"9","SimId":"1195135746","ProductSerial":"4","temperature":"25","humidity":"36","weight":"70","gpslong":"222.25","gpslat":"22.53","rangesensor":"10","picture":"QEA="}[/mw_shl_code]
返回的数据
[mw_shl_code=c,true]+IPD,392:HTTP/1.1 200 OK Cache-Control: no-cache Pragma: no-cache Content-Length: 7 Content-Type: application/json; charset=utf-8 Expires: -1 Server: Microsoft-IIS/8.0 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Set-Cookie: ARRAffinity=51dfcd90e6348ae85cdf4a13a2efd638163965b7aa415d9e61d577957aafd986ath=/;Domain=***.********.net Date: Tue, 10 Feb 2015 08:03:10 GMT "OK: 6"[/mw_shl_code]


回复

使用道具 举报

2

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2014-1-10
在线时间
58 小时
 楼主| 发表于 2015-2-9 16:09:21 | 显示全部楼层
自己顶一个,不要沉了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-2-9 22:54:32 | 显示全部楼层
帮顶....
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-2-10 22:53:46 | 显示全部楼层
回复【4楼】无涯:
---------------------------------
谢谢分享。。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2014-1-10
在线时间
58 小时
 楼主| 发表于 2015-2-11 09:26:17 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
好多东西都是从论坛学到的,多分享点,大家一起进步
回复

使用道具 举报

0

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2013-10-29
在线时间
12 小时
发表于 2015-2-23 10:22:37 | 显示全部楼层
楼主的SIM908买来多少钱?我手上的GRM900B搞POST太麻烦了,有字节限制,到现在都还没有成功,看了你那个AT指令,感觉好强大,POST无压力呀。
回复

使用道具 举报

2

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2014-1-10
在线时间
58 小时
 楼主| 发表于 2015-3-1 16:26:05 | 显示全部楼层
回复【7楼】smhacker:
---------------------------------
买的是289元的
回复

使用道具 举报

11

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2015-3-6
在线时间
1 小时
发表于 2015-7-24 11:30:14 | 显示全部楼层
版主,如果我向数据库post数据,格式还是这样吗?还有,
POST /Api/Mygsm HTTP/1.1
Content-Type:application/json
Host:hokky.**********.net
Content-Length:194   
Connection:Keep-Alive
{"DeviceId":"6","BoardId":"9","SimId":"1195135746","ProductSerial":"4","temperature":"25","humidity":"36","weight":"70","gpslong":"222.25","gpslat":"22.53","rangesensor":"10","picture":"QEA="}
这些都是一次性发送的吗,还是一次发送一行?我用串口助手发送的,每次一行,到Host就出错关闭连接了
回复

使用道具 举报

2

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2014-1-10
在线时间
58 小时
 楼主| 发表于 2015-7-24 17:17:55 | 显示全部楼层
回复【9楼】广寒宫:
---------------------------------
数据库的格式我不清楚,没有试过,我这个是是POST方式,网页间的数据传输方式有get,post,put和delete,这个是要换行和回车的,你在多试几次,主机名和分页面不要搞错了,另外不能发的太快,间隔长一点,发之前要打开TCP连接
回复

使用道具 举报

11

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2015-3-6
在线时间
1 小时
发表于 2015-7-25 10:25:09 | 显示全部楼层
回复【10楼】无涯:
---------------------------------
嗯嗯,谢谢
回复

使用道具 举报

11

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2015-3-6
在线时间
1 小时
发表于 2015-7-25 11:10:17 | 显示全部楼层
回复【10楼】无涯:
---------------------------------
版主,我还想问一下,比如数据库那边的地址的100.100.100.10,端口是8080,那么Host应该怎么写?
回复

使用道具 举报

2

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2014-1-10
在线时间
58 小时
 楼主| 发表于 2015-7-27 10:32:00 | 显示全部楼层
回复【12楼】广寒宫:
---------------------------------
你直接把host主机名字换成IP地址试试,端口号是之前连接TCP/IP时候设置的
回复

使用道具 举报

11

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2015-3-6
在线时间
1 小时
发表于 2015-7-27 18:43:45 | 显示全部楼层
回复【13楼】无涯:
---------------------------------
谢谢,我发送成功了,但是返回的是
SEND OK

+IPD,19rotocol mismatch.(协议不匹配。)

CLOSED
回复

使用道具 举报

2

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2014-1-10
在线时间
58 小时
 楼主| 发表于 2015-7-28 17:41:04 | 显示全部楼层
回复【14楼】广寒宫:
---------------------------------
问题可能出在这
POST /Api/Mygsm HTTP/1.1,我的是网页,你的是数据库
回复

使用道具 举报

11

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2015-3-6
在线时间
1 小时
发表于 2015-7-28 20:33:45 | 显示全部楼层
回复【15楼】无涯:
---------------------------------
噢噢,网上找的数据库的例子更少了,都没找到
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2016-4-22
在线时间
0 小时
发表于 2016-4-22 09:30:31 | 显示全部楼层
推荐你山东有人物联网的GPRS模块 USR-GM3 支持纯透传 直接支持HTTP CLIENT 数据直接就能发送到数据库,根本不用这么麻烦的配置
回复

使用道具 举报

2

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2014-1-10
在线时间
58 小时
 楼主| 发表于 2016-4-24 21:15:20 | 显示全部楼层
有人物联网 发表于 2016-4-22 09:30
推荐你山东有人物联网的GPRS模块 USR-GM3 支持纯透传 直接支持HTTP CLIENT 数据直接就能发送到数据库,根本 ...

自己配置的东西,修改起来方便,模块的话,可操作性不如自己配置的
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2016-5-18
在线时间
0 小时
发表于 2016-5-18 22:59:15 | 显示全部楼层
楼主,你是不是http的方法传输数据的吗
回复

使用道具 举报

10

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2016-8-5
在线时间
57 小时
发表于 2016-8-8 11:55:48 | 显示全部楼层
楼主向HTTP写数据  用AT指令发送POST请求,是哪条指令
回复

使用道具 举报

2

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2014-1-10
在线时间
58 小时
 楼主| 发表于 2016-8-14 10:41:36 | 显示全部楼层
飒风 发表于 2016-5-18 22:59
楼主,你是不是http的方法传输数据的吗

这就是http呀,http有get,post,put等,不好意思回复晚了
回复

使用道具 举报

2

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2014-1-10
在线时间
58 小时
 楼主| 发表于 2016-8-14 10:42:52 | 显示全部楼层
豆腐老 发表于 2016-8-8 11:55
楼主向HTTP写数据  用AT指令发送POST请求,是哪条指令

->POST /Api/Mygsm HTTP/1.1这条就是开始了,但是每次发送完都要换行指令,我上面忘写了
回复

使用道具 举报

10

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2016-8-5
在线时间
57 小时
发表于 2016-8-18 17:26:28 | 显示全部楼层
无涯 发表于 2016-8-14 10:42
->POST /Api/Mygsm HTTP/1.1这条就是开始了,但是每次发送完都要换行指令,我上面忘写了

准备要POST的数据放在那里执行呢?
回复

使用道具 举报

10

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2016-8-5
在线时间
57 小时
发表于 2016-8-18 17:28:26 | 显示全部楼层
豆腐老 发表于 2016-8-18 17:26
准备要POST的数据放在那里执行呢?

AT+HTTP指令,不是AT+CIP,你的是AT+CIP
回复

使用道具 举报

10

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2016-8-5
在线时间
57 小时
发表于 2016-8-18 17:28:57 | 显示全部楼层
无涯 发表于 2016-8-14 10:42
->POST /Api/Mygsm HTTP/1.1这条就是开始了,但是每次发送完都要换行指令,我上面忘写了

AT+HTTP指令,不是AT+CIP,你的是AT+CIP
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2016-9-12
在线时间
3 小时
发表于 2016-9-12 09:56:12 | 显示全部楼层
想问问楼主,通过GPRS给网页服务器发送数据怎么实现的?我也想做做这个实验。
回复

使用道具 举报

2

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2014-1-10
在线时间
58 小时
 楼主| 发表于 2016-9-17 00:37:03 | 显示全部楼层
豆腐老 发表于 2016-8-18 17:28
AT+HTTP指令,不是AT+CIP,你的是AT+CIP

你要使用AT+HTTP吗?
回复

使用道具 举报

2

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2014-1-10
在线时间
58 小时
 楼主| 发表于 2016-9-17 00:37:31 | 显示全部楼层
怀念不要台 发表于 2016-9-12 09:56
想问问楼主,通过GPRS给网页服务器发送数据怎么实现的?我也想做做这个实验。

需要对应网页端有解析的程序
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2016-9-18
在线时间
2 小时
发表于 2016-9-19 11:12:55 | 显示全部楼层
楼主你好,最近要用sim808向服务器post数据,并不是很懂,想向你请教一下~~
要post的服务器要求先发送注册请求的报文,返回一个did后再发送上传数据报文~
请问一下你上面贴图的那个成功了的程序,是在注册请求,还是上传数据?
回复

使用道具 举报

2

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2014-1-10
在线时间
58 小时
 楼主| 发表于 2016-9-25 20:39:56 | 显示全部楼层
EleBingo 发表于 2016-9-19 11:12
楼主你好,最近要用sim808向服务器post数据,并不是很懂,想向你请教一下~~
要post的服务器要求先发送注册 ...

我是连接成功后上传数据,注册的部分我还没有涉及到
回复

使用道具 举报

2

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2016-10-9
在线时间
27 小时
发表于 2016-10-9 10:09:51 | 显示全部楼层
你好楼主,我目前也是实现和你一样的功能但是,400错误
sim908通过GPRS发送POST数据到网站指定页面,但是回传400错误
但是测试通过get发送,网站页面可以接收数据。
朋友告诉我说400为语法错误。
帮我看看我的POST请求是那出问题了

POST /addData.asp?op=SaveNews HTTP/1.1
Content-Type:text/html
Host:www.l**i.cn
Content-Length:45
Connection:Keep-Alive

data0=4&data1=3&data2=2&data3=3&data4=e&data5=3

回复

使用道具 举报

2

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2014-1-10
在线时间
58 小时
 楼主| 发表于 2016-11-30 21:51:39 | 显示全部楼层
河图洛书 发表于 2016-10-9 10:09
你好楼主,我目前也是实现和你一样的功能但是,400错误
sim908通过GPRS发送POST数据到网站指定页面,但是 ...

你的Content-Length不对
回复

使用道具 举报

jianhuyy 该用户已被删除
发表于 2017-3-6 10:34:50 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

2

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2014-1-10
在线时间
58 小时
 楼主| 发表于 2017-3-25 23:09:02 | 显示全部楼层
jianhuyy 发表于 2017-3-6 10:34
楼主的服务器端怎么配置的?

另外一个同事配置的,不是很懂
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2019-2-27
在线时间
1 小时
发表于 2019-2-27 09:14:13 | 显示全部楼层
->POST /Api/Mygsm HTTP/1.1   楼主这句是什么意思,要下载API吗?还是是主机地址后的分页地址。。AT+CIPSTART=\"TCP\",\"138.**.***.40\",\"80\"这里的IP是服务器的地址吧?
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2019-2-27
在线时间
1 小时
发表于 2019-3-1 21:02:07 | 显示全部楼层
通过几天的努力我终于搞出来了,解决了sim卡上传数据insert到数据库,之后访问数据库将数据显示出来,达到了通信的目的。这样子可以将远端的传感器信息显示到网页上了
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2019-2-27
在线时间
1 小时
发表于 2019-3-1 21:03:31 | 显示全部楼层
我是用http post方法,数据要显示到服务器端,要在服务器上设置数据库,还有php写些代码
回复

使用道具 举报

12

主题

64

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2020-2-17
在线时间
8 小时
发表于 2020-5-18 18:10:25 | 显示全部楼层
正点原子 发表于 2015-2-10 22:53
回复【4楼】无涯:
---------------------------------
谢谢分享。。。。

专注于为产业物联网提供接入通信产品和相关服务,产品涵盖2G/3G/4G/NB-IoT/eMTC等无线通信模块及整机、管道云、接入云,广泛应用于智慧能源、车联网、工业物联网、商业零售、智慧城市等行业。 有方科技产品介绍_2.jpg 有方科技产品介绍_3.jpg
联系方式:http://www.linkyeah.cn 深圳市南山区科技南十二道12号朗诗大厦1405室  黄女士:  13925268772
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 23:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表