我正在尝试将我的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发布工作而我的不工作? 谢谢,汤姆。