连接SIM5360 AWS服务器GET / POST呼叫

时间:2018-01-27 23:26:26

标签: json rest amazon-web-services

下午好,

我是这一切的新手,我有一个问题,我想讨论一下是否有人可以帮助我。

我有一个带有Vodafone卡的SIM5360模块,我想连接到一些Web服务,以JSON格式发送和接收数据,我已在AWS服务器上实现。

要执行AT命令,我使用Putty工具。

我首先尝试使用HTTP函数进行以下调用:

AT+CHTTPACT=”XX.XXX.XXX.169″, 8080<CR>

+CHTTPACT:REQUEST

GET /XXXDWP/rest/user/list HTTP/1.1<CR><LF>
Host: XX.XXX.XXX.169:8080<CR><LF>
Content-Type: application/json<CR><LF>
Accept: */*<CR><LF>
<CR><LF>
<CR><LF>
<SUB>

<Ctrl + Z>

其他例子:

GET /XXXDWP/rest/user/list HTTP/1.1\r\nHost: XX.XXX.XXX.169:8080\r\nAccept: */*\r\nContent-Type: application/json\r\n
GET /XXXDWP/rest/user/list HTTP/1.1 Host: XX.XXX.XXX.169:8080 Accept: */* Content-Type: application/json

但我打电话的结果总是:

+ CHTTPACT: 227

我还尝试使用TCP函数进行以下调用:

AT+NETOPEN

AT+CIPOPEN=0,”TCP”,”XX.XXX.XXX.169″,8080

AT+CIPSEND=0,
>GET /XXXDWP/rest/user/list HTTP/1.1<CR><LF>
Host: XX.XXX.XXX.169:8080<CR><LF>
Content-Type: application/json<CR><LF>
Accept: */*<CR><LF>
<CR><LF>
<CR><LF>
<SUB>

<Ctrl + Z>

其他例子:

>GET /XXXDWP/rest/user/list HTTP/1.1\r\nHost: XX.XXX.XXX.169:8080\r\nAccept: */*\r\nContent-Type: application/json\r\n
>GET /XXXDWP/rest/user/list HTTP/1.1 Host: XX.XXX.XXX.169:8080 Accept: */* Content-Type: application/json

但我打电话的结果总是:

……..
http/1.1 400 bad request
server: apache-coyote/1.1
transfer-encoding: chunked
……..

如果有人可以帮助我,请告诉我正确配置SIM5360的步骤,并能够对服务器进行GET / POST调用。

非常感谢,

Celia M. S。

1 个答案:

答案 0 :(得分:0)

以下顺序摘自SIM5360 AT command manual,第18.5章。

通过从以下位置进行检查来确保您拥有良好的人际关系

AT+COPS?

现在,我们将使用安全超文本传输​​协议服务。 首先发送

AT+CHTTPSSTART

等待OK,然后发送

AT+CHTTPSOPSE="<host>",<port>[,<server_type>]

并等待OK,然后发送

AT+CHTTPSSEND=<len>[,<filename>]

len是请求的长度(以字节为单位),filename是要从中上传数据的文件的名称。 执行此命令后,您将收到>,现在发送您的 GET 请求

GET /xxxx.xxx
Host: xxx.xxxx.xxx    
User-Agent: curl/x.xx.x    
Content-Length: x

一旦您的请求匹配您指定的长度,SIM5360将发送您的数据并返回

OK
+CHTTPS: RECV EVENT

指示服务器已响应。 您可以通过以下命令读取响应:

AT+CHTTPSRECV=<len>

Peer可以根据服务器自动关闭,但是如果您要手动关闭,则发送

AT+CHTTPSCLSE

您将收到

+CHTTPSNOTIFY: PEER CLOSED
OK

此时,由于安全HTTP服务仍在运行,因此您可以从AT+CHTTPSOPSE命令发送另一个GET请求。 但是,如果您想停止服务,可以发送

AT+CHTTPSSTOP

,SIM5360将在成功后相应地响应OK


我将api.thingspeak.com服务器用于GET请求,并且服务器按预期方式响应“ 1”。在我的情况下,GET请求的网址是api.thingspeak.com/update?api_key=xxxxxxxxxxxxxxxxx&field1=xx

以下是从我的终端复制的:

AT+CHTTPSOPSE="api.thingspeak.com",80,1
OK

AT+CHTTPSSEND=122
>GET /update?api_key=xxxxxxxxxxxxxxxxx&field1=xx
Host: api.thingspeak.com
User-Agent: curl/7.45.0
Content-Length: 0    
OK
+CHTTPS: RECV EVENT
+CHTTPSNOTIFY: PEER CLOSED

AT+CHTTPSQECV=512
OK
+CHTTPSRECV: DATA,1
1
+CHTTPSRECV: 0

希望这会有所帮助。