Код (C++): #include <Wire.h> #include <ESP8266WiFi.h> #include <OneWire.h> #include <DallasTemperature.h> const char* ssid = "."; const char* password = "."; const char* server = "narodmon.ru/post"; const String mac = "-:-:-:-:-:-"; WiFiClient client; void setup(void) { WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); } } void loop(void) { if (client.connect(server,80)) { int t = -4; String postStr = "ID="; postStr +=mac; postStr +="&mac1="; postStr += String(t); postStr +="&lat="; postStr +="47.0000"; postStr +="&lng="; postStr +="47.0000"; client.print("POST http://narodmon.ru/post HTTP/1.0\r\n"); client.print("Host: narodmon.ru\r\n"); client.print("Content-Type: application/x-www-form-urlencoded\r\n"); client.print("Content-Length: "); client.print(postStr.length()); client.print("\n\n"); client.print(postStr); } client.stop(); delay(1000*60*6); }
Навскидку Код (C++): client.print("\n\n") Надо client.print("\r\n") А вообще, на этом сайте есть необходимые темы. $%$*$, за вас надо их лопатить?
Разве? Может для POST запроса это так, но GET я пишу так: Код (Text): client.println("GET /data/2.5/weather?id=" + String(city) + "&appid=" + String(api) + " HTTP/1.1"); client.println("Host: api.openweathermap.org"); client.println("Connection: close"); client.println();
Знаешь, я за всю жизнь написал лишь один то ли post то ли get запрос для отправки данных на народный мониторинг. И они отправляются туда уже несколько лет. Я абсолютно не помню как это сделал, потому что "отправка post/get запросов" не входит в круг моих обязанностей или интересов. Всегда есть справочник, куда можно посмотреть. Именно так я и сделал, когда писал второй запрос - серверу apixu про погоду. Теперь у меня опыт отправки аж двух запросов. На этом мой опыт исчерпан. Так что втягиваться в концептуальные споры считаю себя некомпетентным