AT + CIPSEND HTTP不发送数据

时间:2018-04-15 21:27:03

标签: http express post arduino at-command

我正在尝试将我的arduino数据通过SIM900以JSON的形式发送到数据库。我收到回复SEND OK但没有收到任何数据。

数据是一个字符串,格式为json,包含数据库的数据。

以下是我的arduino计划的相关部分:

String data =“{\”a \“:1000,\”b \“:1000,\”c \“:1000,\”d \“:1000,\”e \“:1000,\” f \“:1000,\”g \“:1000,\”h \“:1000,\”i \“:1000}”;

client.println( “AT + CIPSTART = \” TCP \ “\ ”myapp.herokuapp.com \“,\ ”80 \“”);

延迟(4000);

client.println( “AT + CIPSEND”);

延迟(1000);

client.print(“POST / writedata HTTP / 1.1 \ r \ n”);

client.print(“主持人:adressofmyapi.com \ r \ n”);

client.print(“Cache-Control:no-cache \ r \ n”);

client.print(“Content-Type:application / json \ r \ n \ r \ n”);

client.println(数据);

client.print((char)的26);

为了比较,这是来自邮递员的工作标题:

POST / writedata HTTP / 1.1 主持人:adressofmyapi.com Content-Type:application / json 缓存控制:无缓存 Postman-Token:令牌

{“a”:1,“b”:1,“c”:1,“d”:1,“e”:1,“f”:1,“g”:1,“h”: 1,“我”:1}

在服务器端,我有简单的JavaScript Express应用程序。

app.post('/ writedata',jsonParser,function(req,res){

var post = req.body;

var query = connection.query('INSERT INTO database SET?',post,function(error,results,fields){          res.end('It working'); });

});

我正在使用Heroku来托管Express应用程序,来自Postman和Arduino的尝试日志几乎是不同的。

POSTMAN日志 2018-04-15T21:00:29.603646 + 00:00 heroku [router]:at = info method = POST path =“/ writedata”host = myapp.herokuapp.com  request_id = 415342d6-5419-4381-867c-1c1e11020a33 fwd =“00.00.000.000”dyno = web.1 connect = 1ms service = 900ms status = 200 bytes = 128 protocol = https

Arduino日志 2018-04-15T21:16:33.178261 + 00:00 heroku [router]:at = info method = POST path =“/ writedata”host = myapp.herokuapp.com  request_id = 7091e0b5-209e-4c41-97a9-a1e4403556b9 fwd =“11.111.111.11”dyno = web.1 connect = 1ms service = 73ms status = 200 bytes = 128 protocol = http

为什么使用POSTMAN发布工作而我的不工作? 谢谢,汤姆。

0 个答案:

没有答案