Rails arduino 读取 json 时的问题。

zix · 发布于 2016年8月01日 · 最后由 zix 回复于 2016年8月02日 · 694 次阅读

rails这边是5.0,直接用支架构建了一个ticket。 然后用arduino GET /tickets/2.json 然后显示所有get到的内容

HTTP/1.1 200 OK
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Content-Type: application/json; charset=utf-8
ETag: W/"5aed621cf435d5f69eba24a90f9751b2"
Cache-Control: max-age=0, private, must-revalidate
X-Request-Id: bc393323-d664-4393-b113-c538252a0c1e
X-Runtime: 0.006484
Transfer-Encoding: chunked


我不明白json前的d2和后面的0是什么? 从哪里能忽略这些信息不要发送?

共收到 5 条回复
huacnlee · #1 · 2016年8月01日

请说清楚你怎么调用的,中间有什么特别的东西,一个 JSON 不回无缘无故多出字符的

此外 arduino 在社区里面本身就是比较冷门的话题,所以你需要详细描述你的请求过程

zix · #2 · 2016年8月01日

#1楼 @huacnlee 已修改 rails这边是5.0,直接用支架构建了一个ticket。 然后用arduino GET /tickets/2.json 然后显示所有get到的内容

southwolf · #3 · 2016年8月01日 2 个赞

建议你把 Arduino 端的代码贴出来。0xD2 = 210 应该是字符串长度, 0 估计是函数返回值。

zix · #4 · 2016年8月02日

/* Web client

This sketch connects to a website (http://www.google.com) using a WiFi shield.

This example is written for a network using WPA encryption. For WEP or WPA, change the Wifi.begin() call accordingly.

This example is written for a network using WPA encryption. For WEP or WPA, change the Wifi.begin() call accordingly.


  • WiFi shield attached

created 13 July 2010 by dlf (Metodo2 srl) modified 31 May 2012 by Tom Igoe */

#include #include

char ssid[] = "yourNetwork"; // your network SSID (name) char pass[] = "secretPassword"; // your network password (use for WPA, or use as key for WEP) int keyIndex = 0; // your network key Index number (needed only for WEP)

int status = WL_IDLE_STATUS; // if you don't want to use DNS (and reduce your sketch size) // use the numeric IP instead of the name for the server: //IPAddress server(74,125,232,128); // numeric IP for Google (no DNS) char server[] = "www.google.com"; // name address for Google (using DNS)

// Initialize the Ethernet client library // with the IP address and port of the server // that you want to connect to (port 80 is default for HTTP): WiFiClient client;

void setup() { //Initialize serial and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only }

// check for the presence of the shield: if (WiFi.status() == WL_NO_SHIELD) { Serial.println("WiFi shield not present"); // don't continue: while (true); }

// attempt to connect to Wifi network: while (status != WL_CONNECTED) { Serial.print("Attempting to connect to SSID: "); Serial.println(ssid); // Connect to WPA/WPA2 network. Change this line if using open or WEP network: status = WiFi.begin(ssid, pass);

// wait 10 seconds for connection: delay(10000); } Serial.println("Connected to wifi"); printWifiStatus();

Serial.println("\nStarting connection to server..."); // if you get a connection, report back via serial: if (client.connect(server, 80)) { Serial.println("connected to server"); // Make a HTTP request: client.println("GET /search?q=arduino HTTP/1.1"); client.println("Host: www.google.com"); client.println("Connection: close"); client.println(); } }

void loop() { // if there are incoming bytes available // from the server, read them and print them: while (client.available()) { char c = client.read(); Serial.write(c); }

// if the server's disconnected, stop the client: if (!client.connected()) { Serial.println(); Serial.println("disconnecting from server."); client.stop();

// do nothing forevermore: while (true); } }

void printWifiStatus() { // print the SSID of the network you're attached to: Serial.print("SSID: "); Serial.println(WiFi.SSID());

// print your WiFi shield's IP address: IPAddress ip = WiFi.localIP(); Serial.print("IP Address: "); Serial.println(ip);

// print the received signal strength: long rssi = WiFi.RSSI(); Serial.print("signal strength (RSSI):"); Serial.print(rssi); Serial.println(" dBm"); }

zix · #5 · 2016年8月02日

#3楼 @southwolf 估计是 代码很简单 应该是发送的长度值

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册