• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP32 Подключение к хостингу и внесение изменений на сайте с помощью esp

VlaDDoS111

New member
#include <WiFi.h>
#include <HTTPClient.h>
const char* ssid = "ssid";
const char* password = "password";
unsigned long lastTime = 0;
unsigned long timerDelay = 5000;
void setup() {
Serial.begin(115200);
// Connect to Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// Define host and port

}
void loop() {
if ((millis() - lastTime) > timerDelay) {
if(WiFi.status()== WL_CONNECTED){
const char* host = "k912019u.beget.tech";
int port = 80;
// Define path
const char* path = "/com/btnr.php?btnReaction=wc";
// Send HTTP GET request
HTTPClient http;
http.addHeader("User-Agent", "Mozilla/5.0");
http.begin(host, port, path); // Use begin with host and port
int httpResponseCode = http.GET();
// Check for response
if (httpResponseCode > 0) {
String response = http.getString();
Serial.println("HTTP Response: " + response);
} else {
Serial.print("Error on HTTP request. Error code: ");
Serial.println(httpResponseCode);
}
http.end();
}
else {
Serial.println("WiFi Disconnected");
}
lastTime = millis();
}
}
Вот так возвращает 403
 

VlaDDoS111

New member
#include <WiFi.h>
#include <HTTPClient.h>
const char* ssid = "ssid";
const char* password = "password";
const int buttonPin = 12; // Пин, к которому подключена кнопка
int buttonState = 0; // Переменная для хранения состояния кнопки
void setup() {
Serial.begin(115200);

// Подключение к Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Подключение к Wi-Fi...");
}
Serial.println("Подключено к Wi-Fi");
}
void loop() {
buttonState = digitalRead(buttonPin); // Считываем состояние кнопки
// Если кнопка нажата
if (buttonState == HIGH) {
// Отправляем HTTP GET запрос
HTTPClient http;
http.begin("http://k912019u.beget.tech/com/btnr.php?btnReaction=wc -H \"User-Agent: Mozilla/5.0\"");
int httpResponseCode = http.GET();
// Проверяем ответ
if (httpResponseCode > 0) {
String response = http.getString();
Serial.println("HTTP Response: " + response);
} else {
Serial.print("Ошибка HTTP запроса. Код ошибки: ");
Serial.println(httpResponseCode);
}
http.end();
// Ждем, пока кнопка будет отпущена, чтобы избежать повторных запросов
while (digitalRead(buttonPin) == HIGH) {
delay(100);
}
}
// Дополнительные действия могут быть добавлены здесь
delay(100); // Небольшая задержка для стабилизации
}
вот так возвращает

HTTP Response: <html>

<head><title>400 Bad Request</title></head>

<body>

<center><h1>400 Bad Request</h1></center>

<hr><center>nginx-reuseport/1.21.1</center>

</body>

</html>
 

VlaDDoS111

New member
как продвинуться дальше
Я не правильно добавляю -H \"User-Agent: Mozilla/5.0\"
Я не знаю как правильно
 

CodeNameHawk

Moderator
Команда форума
На вопросы отвечать не любите.
А так вместо того, чтобы лечить болезнь, пытаетесь бороться с симптомами - удачи.
 

CodeNameHawk

Moderator
Команда форума
@fps с вашим усерагентом - работает.
 
Последнее редактирование:

fps

Active member
Там у VlaDDoS111 вообще какая-то солянка:

на такой запрос: curl http://k912019u.beget.tech/com/ отвечает nginx

HTML:
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx-reuseport/1.21.1</center>
</body>
</html>

на такой curl http://k912019u.beget.tech/com/ отвечает апач
HTML:
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access this resource.</p>
<hr>
<address>Apache/2.4.55 (Unix) Server at k912019u.beget.tech Port 80</address>
</body></html>

вот на такое ответит Success пыхыпы :)
curl -H "User-Agent: Mozilla/15.0" http://k912019u.beget.tech/com/btnr.php?btnReaction=LOL
 

fps

Active member
* второй запрос такой curl -H "User-Agent: Mozilla/5.0" http://k912019u.beget.tech/com/
(не дает исправить)
 

VlaDDoS111

New member
Я очень вам благодарен у меня наконец-то получилось, я не специально игнорировал ваши вопросы, отвечал как мог
Этот запрос работает в командной строке, а через плату выдавал 400
Я так понял ошибка не корректного запроса
 

VlaDDoS111

New member
Может подскажите что мне сделать
Стабильно первые пять запросов выдают ошибку -1
Остальные 200

СЕЙЧАС должен подключиться wi-fi

пытаюсь wi-fi подключен

Нажми на кнопку чтобы отправить запрос

кнопка нажата

Error code: -1

кнопка нажата

Error code: -1

кнопка нажата

Error code: -1

кнопка нажата

HTTP Response code: 200

Success

кнопка нажата

HTTP Response code: 200

Success

кнопка нажата

HTTP Response code: 200

Success


Интересно с чем это связано куда он не успевает подключиться некоторое время
Я ничего не меняю, но сначала возвращает ошибку, а потом работает корректно

так как через некоторое время работает исправно:
1.адрес правильный
2.к вайфаю подключен
3.сервер меня не блокирует
4.порт я не указываю, но получается и так работает
Осталось только по IP обращаться а не по доменному имени

ИЛИ я не прав
 

fps

Active member
Конкретно: перечитайте внимательно, что вам отвечали, что вас спрашивали и вы не удосужились ответить, какие ссылки вам давали ознакомиться.
 

CodeNameHawk

Moderator
Команда форума
Можно конкретней ?
Куда уж конкретней?
Включите отладку wifi в arduinoide и посмотрите успевает ли сработать подключение к инету, или просто добавьте еще одну задержку, перед обращением к сайту.
p.s. Именно к инету, а не к вифи.
 
Сверху Снизу