ESP 8266. Не получается правильно сформировать строку запроса к серверу через АТ-команды. Подскажите.

himalart
Offline
Зарегистрирован: 11.03.2016
Пытаюсь отправлять данные на Тhingspeak через АТ-команды.
Пробовал програмно с использованием библиотеки Тhingspeak - все работает замечательно.
 
Пробовал просто из строки браузера:  
 
Опять-таки все работает превосходно - данные принимаются.
 
Пытаюсь повторить через АТ-команды:
 
AT+CIPSTART="TCP","api.thingspeak.com",80
CONNECT
OK
 
AT+CIPSEND=108
 
OK
> GET /update?api_key=ХХХХ65CE76RMХХ&field1=100 HTTP/1.1\r\n Host: api.thingspeak.com\n Connection: close\r\n\r\n\r\n       
 
 
SEND OK
 
Сервер отвечает, что это 400 Bad Request
 
ЧТО В СТРОКЕ ЗАПРОСА НЕ ТАК?????
 
DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

По меньшей мере вижу отсутствующий символ \r :

Host: api.thingspeak.com\n

Надо:

Host: api.thingspeak.com\r\n

Зачем кодировать & в &amp, если это часть запроса, а не часть данных?

GET /update?api_key=ХХХХ65CE76RMХХ&field1=100

Поменяйте на:

GET /update?api_key=ХХХХ65CE76RMХХ&field1=100

Пробелы в началах строк - убрать:

Host: api.thingspeak.com\n Connection: close\r\n\r\n\r\n

Последний перевод строки - лишний.

Не задан заголовок Content-Length, в вашем случае он должен быть таким:

Content-Length: 0

Достаточно?