【问题标题】:How to do a GET request from Arduino Uno R3 using WiFly?如何使用 WiFly 从 Arduino Uno R3 发出 GET 请求?
【发布时间】:2015-02-06 04:48:51
【问题描述】:

我环顾四周,找不到任何类似我想做的事情。

背景:我正在尝试通过 WiFly 盾牌从这个名为 http://api.football-data.org 的 API 获取足球信息到我的 Arduino 上。现在这是我想出的一些代码,以某种方式获取这些信息。但是,这段代码还不行。

#include <SPI.h>
#include "WiFly.h" //include the WiFly experimental library

char server[] = "api.football-data.org";
WiFlyClient client(server, 80);

void setup(){

  Serial.begin(9600);
  Serial.println("Serial Begun :D");
  WiFly.begin();
  Serial.println("WiFly Begun :D");

  Serial.print("IP: ");
  Serial.println(WiFly.ip()); //print out WiFly IP

}

void loop(){

  if(client){
    while(client.connected()){
      if(client.available()){
        char c = client.read();
        delay(10);
        Serial.print(c);

        if(c == '\n'){
          Serial.println("connected");
          client.print("GET http://api.football-data.org/alpha/soccerseasons/357/leagueTable");
          Serial.print("GET http://api.football-data.org/alpha/soccerseasons/357/leagueTable");
          client.println(" HTTP/1.1");
          Serial.println(" HTTP/1.1");
          client.println("Host: api.football-data.org");
          Serial.println("Host: api.football-data.org");
          client.println("X-Auth-Token: (My Token here)");
          Serial.println("X-Auth-Token: (My Token here)");  
          client.println("Connection: close");
          Serial.println("Connection: close");
          client.println();
        }

      }
    }
    delay(100);
    client.flush();
    client.stop();
  }
}

我应该进行哪些更改才能从 api.football-data.org 服务器获得正确的 HTTP 响应?

【问题讨论】:

    标签: api arduino


    【解决方案1】:

    我根据在 WiFly 库中找到的一些示例,特别是 WiFly_WebClient 示例,让它工作。那里真的很有用。这是功能齐全的代码:

    #include <SPI.h>
    #include "WiFly.h" //include the WiFly experimental library
    #include "Credentials.h"
    
    
    WiFlyClient client("api.football-data.org", 80);
    
    void setup(){
    
      Serial.begin(9600);
      Serial.println("Serial Begun :D");
      WiFly.begin();
    
      if (!WiFly.join(ssid, passphrase)) {
        Serial.println("Association failed.");
        while (1) {
          // Hang on failure.
        }
      } 
    
      Serial.print("connecting to server...");
      if(client.connect()){
        Serial.println("connected");
        client.print("GET http://api.football-data.org/alpha/soccerseasons/357/leagueTable");
        Serial.print("GET http://api.football-data.org/alpha/soccerseasons/357/leagueTable");
        client.println(" HTTP/1.1");
        Serial.println(" HTTP/1.1");
        client.println("Host: api.football-data.org");
        Serial.println("Host: api.football-data.org");
        client.println("X-Auth-Token: My Token");
        Serial.println("X-Auth-Token: My Token");  
        client.println("Connection: close");
        Serial.println("Connection: close");
        client.println();
      } else{
        Serial.println("connection failed");
      }
    
    
    }
    
    void loop(){
    
      if (client.available()) {
        char c = client.read();
        Serial.print(c);
      }
    
      if (!client.connected()) {
        Serial.println();
        Serial.println("disconnecting.");
        client.stop();
        for(;;)
          ;
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多