gpt4 book ai didi

post - ESP8266 和 POST 请求

转载 作者:行者123 更新时间:2023-12-03 23:38:16 25 4
gpt4 key购买 nike

我有一个 ESP8266,我正在用 Arduino 进行编程。我需要发出 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

}

但是在网页上我没有收到任何回复。

最佳答案

我找到了这段代码,它可以工作!

#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);
}

非常感谢您的帮助。

关于post - ESP8266 和 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41371156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com