Post запросы на общедоступный собственный сайт

И с этим тоже дел не имел ))
Ладно, что-то ТС надумал - пусть пробует и сообщит как и что.

  1. У некоторых хостеров вообще закрыт простой http, не https.
  2. Фильтрация как может быть сделана? По юзер агенту скорее всего… Ну?
  3. Это коллегам - на есп все нормально сделано. Ладно UA6EM, но я сам проверял на своём сервере.
  4. ТС! Скажи, что за хостер. На бесплатном тарифе я сам попробую. Любой фильтр можно обойти. Но, повторю, попробуй юзер агент поставить.

Даже так: посмотри запрос от скрипта, который работает. Проверь, что именно на http , без s работает. И повтори до буквы все хедеры из работающего запроса. Не размышляя. Ок?

Если и тогда не сработает - мистика!!! :wink:

Хостер beget.ru. Есть у них free хостинг, но только если никогда там не регался еще, либо вообще новый левый аккаунт создавать. https на бесплатном включить нельзя.
В заголовки пробовал передавать инфу из тестового рабочего запроса, который писал выше, не спасало

http.addHeader("Accept", "*/*");
http.addHeader("Accept-Encoding", "gzip, deflate");
http.addHeader("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3");
http.addHeader("Content-Type", "application/json");
http.addHeader("Connection", "keep-alive");
http.addHeader("Origin", "null");
http.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:109.0) Gecko/20100101 Firefox/109.0");

У меня в браузере работает твой хост, но запрос/ответ не такие как ты выше приводил.

Запрос:

Accept	text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Encoding	gzip, deflate
Accept-Language	ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Connection	keep-alive
Host	selhom.ru
Upgrade-Insecure-Requests	1
User-Agent	Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:109.0) Gecko/20100101 Firefox/109.0

Ответ:

Access-Control-Allow-Credentials	false
Access-Control-Allow-Headers	*
Access-Control-Allow-Methods	GET,POST,OPTIONS,DELETE,PUT
Access-Control-Allow-Origin	*
Access-Control-Max-Age	3600
Connection	keep-alive
Content-Length	53
Content-Type	application/json
Date	Thu, 02 Feb 2023 07:10:45 GMT
Keep-Alive	timeout=30
Server	nginx-reuseport/1.21.1
X-Content-Type-Options	nosniff
X-Powered-By	PHP/7.4.33
X-XSS-Protection	1; mode=block

попробовать все четыре (верхних) контроля доступа сделать false оставив только ограничение по времени (у меня оно 60)

У меня в браузере тоже работает, но не с ESP.
Через client тоже не подключается, сразу выдает ошибку подключения…

 ...
 WiFiClient client;
  if (!client.connect(serv, 80)) {
    Serial.println("connection failed");
    return ("");
  }
...

не вифи HTTPClient

Это и так можно считать полная свобода запросов…

попробую

ТС! Сделай милость, отправь оба запроса на http://postman-echo.com/post и покажи оба ответа.

Вот, к примеру мой ответ:

[HTTP] begin...
[HTTP] POST...
[HTTP] POST... code: 200
{"args":{},"data":{"hello":"world"},"files":{},"form":{},"headers":{"x-forwarded-proto":"http","x-forwarded-port":"80","host":"postman-echo.com","x-amzn-trace-id":"Root=1-63db7c1f-54e22eb142fd634b707e9253","content-length":"17","user-agent":"ESP32HTTPClient","accept-encoding":"identity;q=1,chunked;q=0.1,*;q=0","content-type":"application/json"},"json":{"hello":"world"},"url":"http://postman-echo.com/POST"}

Обрати внимание на то, что:

"user-agent":"ESP32HTTPClient"

С одной стороны, раз с нормальными серверами работает, то можно и наплевать на странного хостера, но победить его интересно. Это уже спортивный чисто интерес! :wink:

Чуть позже, немного на основной работе поработаю)

Ох, блин! Вот зря ты мне об этом напомнил!!! :tired_face:

1 лайк

ответ

Сброс данных на http://postman-echo.com/post
[HTTP] POST... code: 200
received payload:
<<
{"args":{},"data":{"kod":"settings"},"files":{},"form":{},"headers":{"x-forwarded-proto":"http","x-forwarded-port":"80","host":"postman-echo.com","x-amzn-trace-id":"Root=1-63db8691-71f915c8741339707e95aa2b","content-length":"18","user-agent":"ESP8266HTTPClient","accept-encoding":"identity;q=1,chunked;q=0.1,*;q=0, gzip, deflate","accept":"*/*","accept-language":"ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3","content-type":"application/json","origin":"null"},"json":{"kod":"settings"},"url":"http://postman-echo.com/post"}
>>

В общем нет желания больше с этим хостингом мучатся, пойду попробую к другому…

Реально за 60 рублей в год?

я тоже не поверил, зарегался. Правда активировать пришлось через поддержку, кривовато и простовато у них там. Ни как на beget, где сейчас.
Я так понял ipipe.ru это ростелекомовский сервис, от них контора работает.

лишь бы не как в Египте, залезть на верблюда - бесплатно, а вот слезть…

Да блин, домен перенести еще 310р просят

а без домена не могу попасть на главную…

Можно в hosts забить доменное имя и публичный адрес сервера, на котором размещен сайт. Это способ по быстрому и без DNS “прикрутить домен”, но это только для тестирования пойдет.

И как быть в таком случае с ESP - не знаю (свой локальный DNS-сервер может имеется?).