以JSON格式将数据从Arduino发布到服务器
我试图通过我的Arduino设备以JSON格式将一些手动数据上传到服务器。我使用SIM800(Seduino库)进行网络连接。程序编译并运行时没有任何错误。但我的手动数据不会传输到服务器。下面是我的代码。帮我修一下以JSON格式将数据从Arduino发布到服务器,json,post,arduino,Json,Post,Arduino,我试图通过我的Arduino设备以JSON格式将一些手动数据上传到服务器。我使用SIM800(Seduino库)进行网络连接。程序编译并运行时没有任何错误。但我的手动数据不会传输到服务器。下面是我的代码。帮我修一下 #include <gprs.h> #include<SoftwareSerial.h> char url="http://test.server.com"; GPRS client; void setup() { Serial.begin(9600);
#include <gprs.h>
#include<SoftwareSerial.h>
char url="http://test.server.com";
GPRS client;
void setup() {
Serial.begin(9600);
while(!Serial);
Serial.println("Connection Test...");
client.preInit();
while(0!=client.init()){
delay (1000);
Serial.println("init error");
}
while(!client.join("MYAPNAddress"));//I used airtelgprs.com
{
Serial.println("error");
delay(2000);
}
Serial.print("IP Address is");
Serial.println(client.getIPAddress());
Serial.println("INit succeess");
}
void post()
{
char data="{ \"vehicleId\" : 1, \"version\" : 1, }";
Serial.println(data);
Serial.println("POST/page/listener/insert HTTP/1.1");
Serial.println("HOST:testserver.com");
Serial.println("Content-Type: application/json;charset=utf-8");
if(0!=client.connectTCP(url,80)){
Serial.println("TCP error");
goto STOP;
}
if(0!=client.sendTCPData(data)){
Serial.println("sending error");
goto STOP;
}
STOP:
client.closeTCP();
return 0;
}
void loop() {
post();
delay(200);
}
#包括
#包括
字符url=”http://test.server.com";
GPRS客户端;
无效设置(){
Serial.begin(9600);
而(!串行);
Serial.println(“连接测试…”);
client.preInit();
而(0!=client.init()){
延迟(1000);
Serial.println(“初始错误”);
}
而(!client.join(“MYAPNAddress”);//我使用了airtelgprs.com
{
Serial.println(“错误”);
延迟(2000年);
}
串行打印(“IP地址为”);
Serial.println(client.getIPAddress());
Serial.println(“初始成功”);
}
空缺职位()
{
char data=“{\'vehicleId\”:1,\'version\”:1,}”;
Serial.println(数据);
Serial.println(“POST/page/listener/insert HTTP/1.1”);
println(“主机:testserver.com”);
println(“内容类型:application/json;charset=utf-8”);
如果(0!=client.connectTCP(url,80)){
Serial.println(“TCP错误”);
转到停止;
}
如果(0!=client.sendTCPData(数据)){
Serial.println(“发送错误”);
转到停止;
}
停止:
client.closeTCP();
返回0;
}
void循环(){
post();
延迟(200);
}
对不起,现在还不允许评论:-)
- “POST”和URL之间至少缺少一个空格
- 每行后面需要\r\n(使用print(),而不是println())
- 您需要在收割台和有效负载之间设置一条空行
- 在某个时候,您需要一些JSON作为有效负载