2016-12-28 5 views
1

私はArduinoでプログラミングしているESP8266を持っています。私はPOSTリクエストをする必要があります。私はこのコードを試しました:ESP8266とPOSTリクエスト

#include <ESP8266HTTPClient.h> 
#include <ESP8266WiFi.h> 

void setup() { 

    Serial.begin(115200);         //Serial connection 
    WiFi.begin("ssid", "wifi_password"); //WiFi connection 

    while (WiFi.status() != WL_CONNECTED) { //Wait for the WiFI connection completion 

    delay(500); 
    Serial.println("Waiting for connection"); 

    } 
} 

void loop() { 

    if(WiFi.status()== WL_CONNECTED){ //Check WiFi connection status 

    HTTPClient http; //Declare object of class HTTPClient 

    http.begin("server_name");  //Specify request destination 
    http.header("POST/HTTP/1.1"); 
    http.header("Host: server_name"); 
    http.header("Accept: */*"); 
    http.header("Content-Type: application/x-www-form-urlencoded"); 
    int httpCode = http.POST("Message from ESP8266"); //Send the request 
    String payload = http.getString();           
    Serial.println(httpCode); //Print HTTP return code 
    Serial.println(payload); //Print request response payload 
    http.end(); //Close connection 

    }else{ 

    Serial.println("Error in WiFi connection"); 

    } 

    delay(5000); //Send a request every 30 seconds 

} 

しかし私は何の応答も受けませんでした。

+0

「しかし、Webページでは何の応答も得られませんでした」 - どのWebページですか? Webページに**のレスポンスが表示されるのはなぜですか? – Quentin

+0

http.header( "コンテンツタイプ:application/x-www-form-urlencoded"); 'と' http.POST( "ESP8266からのメッセージ"); ' - それらは一致しません。 – Quentin

+0

ウェブページにはmysqlデータベースがあります。そして、正しいことは何ですか? – Matej

答えて

2

このコードが見つかりました。

#include <ESP8266WiFi.h> 
const char* ssid  = "ssid"; 
const char* password = "password"; 

const char* host = "server_name"; 

void setup() { 
    Serial.begin(115200); 
    delay(100); 

    // We start by connecting to a WiFi network 
    Serial.println(); 
    Serial.println(); 
    Serial.print("Connecting to "); 
    Serial.println(ssid); 

    WiFi.begin(ssid, password); 

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

    Serial.println(""); 
    Serial.println("WiFi connected"); 
    Serial.println("IP address: "); 
    Serial.println(WiFi.localIP()); 
} 

void loop() { 

    WiFiClient client; 
    const int httpPort = 80; 
    if (!client.connect(host, httpPort)) { 
    Serial.println("connection failed"); 
    return; 
    } 


String data = "pst=temperature>" + String(random(0,100)) +"||humidity>" + String(random(0,100)) + "||data>text"; 

    Serial.print("Requesting POST: "); 
    // Send request to the server: 
    client.println("POST/HTTP/1.1"); 
    client.println("Host: server_name"); 
    client.println("Accept: */*"); 
    client.println("Content-Type: application/x-www-form-urlencoded"); 
    client.print("Content-Length: "); 
    client.println(data.length()); 
    client.println(); 
    client.print(data); 

    delay(500); // Can be changed 
    if (client.connected()) { 
    client.stop(); // DISCONNECT FROM THE SERVER 
    } 
    Serial.println(); 
    Serial.println("closing connection"); 
    delay(5000); 
} 

ありがとうございました。