Существует несколько частей вашей системы, которые могут быть причиной неисправности:
- Отправленные AT-команды (неясно, как вы проверяете ответы сервера. Ответы могут дать подсказки очто не так)
- Приложение на стороне сервера, по-видимому, является пользовательской реализацией, в которой также могут быть ошибки
- Возможно, запрос POST некорректен
Давайте сосредоточимся напоследний.
POST описаны в RFC 7231 , и хотя это неясное описание без примеров, оно ясно дает понять: на самом деле нет четко определенногостандартный ... потому что это строго зависит от приложения!
Я также цитирую соответствующую часть этого блестящего ответа на старый SO вопрос :
При полученииPOST-запрос, вы всегда должны ожидать «полезную нагрузку», или, в терминах HTTP: тело сообщения. Тело сообщения само по себе довольно бесполезно, так как нет стандартного .
По этой причине все, что мы можем сделать, - это создать запрос POST как можно более точным, а затемчтобы отладить систему в целом, убедившись, что запрос соответствует ожидаемому приложению на стороне сервера.
Для этого давайте проверим другую найденную мной внешнюю ссылку: Примеры запросов POST . Мы нашли этот запрос:
POST /test HTTP/1.1
Host: foo.example
Content-Type: application/x-www-form-urlencoded
Content-Length: 27
field1=value1&field2=value2
Теперь давайте сравним этот пример с вашим запросом:
POST
Host: ********connected.com
Accept: application/json
Content-Length: 224
Content-Type: application/jsonr
{ "email":"myemail.com", "password":"myPassword" }
Вы говорите серверу, что хотите передать ресурс в неуказанное приложение (без пути), и что этот ресурс имеет длину 224 байта (неправильно! Тело сообщения короче).
По этим причинам, по крайней мере, эти вещи могут быть улучшены:
- POST / path / invic18app.php HTTP / 1.1 // Отсутствуют путь к приложению и версия HTTP
- Длина содержимого: 48 // Это должна быть длина тела сообщения без заголовка. Я также написал бы это как последний вариант, непосредственно перед телом сообщения
- Напишите две пустые строки перед телом сообщения, в противном случае сервер будет интерпретировать это как дальнейшие (неправильные) опции
Надеюсь, это поможет вам, даже если это предварительный ответ (я не могу попробовать этот запрос самостоятельно). Но, опять же, вам определенно нужно прослушивать пакеты уровней TCP, чтобы избежать отладки сервера, если вы не уверены, что данные действительно получены! Если вы не можете установить Wireshark, все равно tcpdump будет в порядке.