HTTPリクエストの送信

Arduino:
HTTPリクエストの送信

How to: (方法)

#include <ESP8266WiFi.h>

const char* ssid = "yourSSID";
const char* password = "yourPASSWORD";
const char* host = "api.example.com";

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("WiFi connected");

  WiFiClient client;
  
  if (!client.connect(host, 80)) {
    Serial.println("Connection failed");
    return;
  }
  
  client.print(String("GET /data") + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" + 
               "Connection: close\r\n\r\n");
  while(client.available()){
    String line = client.readStringUntil('\r');
    Serial.print(line);
  }
}

void loop() {
  // Nothing to do here
}

このコードは、WiFi経由でHTTP GETリクエストを送り、レスポンスを受け取ります。

Deep Dive (掘り下げ)

Arduinoは本来、単純なマイクロコントローラー用の開発プラットフォームでした。しかし、より強力なESP8266のようなチップが登場し、簡単にインターネットに接続可能になりました。HTTPを使う他の方法には、HTTPClientライブラリの使用やHTTPS接続もありますが、シンプルな接続には上記の基本的なTCPクライアントで十分です。実装の詳細には、接続の安定性や受信データの処理方法が重要になってくるでしょう。

See Also (関連情報)