Хочу подружить 1С и Ардуино на ESP8266
- Войдите на сайт для отправки комментариев
Чт, 06/01/2022 - 17:51
Веб-сервер на 1С я создал на локальной машине, Через браузер отправляю такой запрос:
admin@192.168.56.176/blog_server/hs/data_services/news/get_news
и получаю что хочу на экране:
тут все хорошо, далее на esp8266 пытаюсь получить то же самое:
#include <ESP8266WiFi.h> // Библиотека для создания Wi-Fi подключения (клиент или точка доступа) #include <WiFiClient.h> // Библиотека для связи с сетевыми хостами (локальными и интернет) //#include <ArduinoJson.h> // Библиотека для разбора JSON const char* ssid = "POCO X3 Pro"; // Указываем имя WiFi-сети, к которой будет подключаться ESP8266 для доступа в Интернет const char* password = "888888"; // Указываем пароль для подключения к WiFi-сети WiFiClient client; // Создаём объект для работы с удалёнными хостами void setup() { Serial.begin(115200); // Инициализируем вывод данных на серийный порт со скоростью 9600 бод Serial.println("\n\n"); WiFi.begin(ssid, password); // Соединяемся с WiFi-сетью while (WiFi.status() != WL_CONNECTED) // Пока соединение не установено delay(500); // делаем задержку в пол секунды, пока соединение не установится while (!TimeAndWeather()) // Синхронизируем время микроконтроллера с реальным временем и получаем информацию о погоде delay(5000); } void loop() {} bool TimeAndWeather () { if (client.connect("192.168.56.176",80)) { // Если удаётся установить соединение 192.168.56.176 адрес сервера client.println("GET /blog_server/hs/data_services/news/get_news HTTP/1.1\r\nHost: admin@192.168.56.176/blog_server/hs/data_services/news/get_news \r\nConnection: close\r\n\r\n"); // Отправляем параметры запроса delay(300); // Даём серверу время, чтобы обработать запрос Serial.println("chitaem dannie"); String line2; while ( client.available() ) { char c = client.read(); line2 += c; } Serial.print("line2= "); Serial.println(line2); return false; } }
Методом тыка(т.е проб и ошибок) добился, чтобы сервер мне что-то ответил. В мониторе порта вижу:
chitaem dannie line2= HTTP/1.1 400 Bad Request Date: Thu, 06 Jan 2022 13:23:52 GMT Server: Apache/2.4.41 (Win32) Content-Length: 347 Connection: close Content-Type: text/html; charset=iso-8859-1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>400 Bad Request</title> </head><body> <h1>Bad Request</h1> <p>Your browser sent a request that this server could not understand.<br /> </p> <p>Additionally, a 400 Bad Request error was encountered while trying to use an ErrorDocument to handle the request.</p> </body></html>
Как получить то же, что и в браузере? Веб программирование мне тяжко дается...
400-я ошибка - это означает не верный запрос.
Попробуй так:
Если не получится, покажи вывод и ошибку (если поменяется). Но однозначно ошибка в синтаксисе. Написал по памяти, могу и путать.
1C требует авторизацию, конструкция admin@192.168.56.176/blog_server/hs/data_services/news/get_news, позволяет из браузера зайти под именем admin, где тут ввести имя пользователя? проверил - ответ такой же:
Ну на какой вы все прете писать вручную http запросы? Что за мода такая среди идиотов? Ну что, сложно набрать в яндексе arduino http library и пользоваться готовой вещью?
Ну на какой вы все прете писать вручную http запросы? Что за мода такая среди идиотов? Ну что, сложно набрать в яндексе arduino http library и пользоваться готовой вещью?
еще бы знать как ей пользоваться... пошел смотреть
1C требует авторизацию
Тогда конструкция должна быть не такой как у вас, а вида:
Хотя это наврятли 400ю ошибку бы вызвало. Но пароль как вводить то иначе?))
Ну на какой вы все прете писать вручную http запросы? Что за мода такая среди идиотов? Ну что, сложно набрать в яндексе arduino http library и пользоваться готовой вещью?
пример из библиотеки HTTPclient:
так доходит до авторизации:
потом собака срабатывает.
Если в строке 30 заменить на "admin@192.168.56.176" не подключается совсем,а мне авторизация нужна... Как ее добавить?
Тогда конструкция должна быть не такой как у вас, а вида:
Хотя это наврятли 400ю ошибку бы вызвало. Но пароль как вводить то иначе?))
пользователь без пароля, учебная версия 1С, пароли вводить не дает.
Ну так попробуй
400я ошибка ушла?
я так и не понял, вэб сервер на Битриксе?
admin:pass@192.168.56.176 - так не прокатит?
У него пароль пустой))
Дак пусть пасс не пишет, двоеточие оставит.
А вообще - такие вещи через фиддлер гоняют для начала, чтобы понять как там авторизация происходит.
#9
#9
Мелкие буквы с мобилы не видать, проглядел.
я так и не понял, вэб сервер на Битриксе?
Apache 2.4
У него пароль пустой))
Уже и пароль добавил, не работает из под Ардуино, в браузере хром все ок.
Это что за зверь?
https://en.m.wikipedia.org/wiki/Fiddler_(software)
Уже попытался поковырять билиотеку HttpClient там есть метод
по разному пытался его использовать ни фига
в мониторе:
https://timeweb.com/ru/community/articles/oshibka-servera-401-chto-eto-za-oshibka-i-kak-ee-ispravit
Читал?
Смущает:
В примерах другая последовательность:
В примерах другая последовательность:
Спасибо, Komandir. Реально помог!
Вот и подружили )))