ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Я использую Arduino Nano с библиотекой SoftwareSerial на скорости 9600 бод для связи с модулем GSM2 Click (на базе QUECTEL M95) от Micro Elektronika. Я хочу отправлять данные POST онлайн с пользовательскими заголовками HTML. Мне не удается успешно отправить модуль QUECTEL в POST, когда я пытаюсь добавить пользовательские заголовки с помощью команды QHTTPPOST.
Это первое полуполезное руководство по командам HTTP AT, которое я нашел: /www.quectel.com/UploadImage/Downlad/Quectel_WCDMA_UGxx_HTTP_AT_Commands_Manual_V1.2.pdf
Вот официальное руководство по эксплуатации QUECTEL M95: http://www.quectel.com/product/prodetail.aspx?id=7
Вкратце:
1) Регистрация в сети работает нормально.
2) Публикация данных, когда НЕ используются пользовательские заголовки запросов, работает нормально.
3) Команды QHTTPCFG нет в официальной документации для этого модуля, но она была предложена при обращении в службу поддержки QUECTEL.
4) Полученные коды ошибок AT: CME ERROR: 3804 «HTTP не получает запрос»
- Мобильный оператор: Vodacom Южная Африка
- Сила сигнала CSQ: 26
Требуемый формат для AT-команд M95:
Команда ‹ CR >
МОЙ КОД
//Set the correct URL
mySerial.print("AT+QHTTPURL=34,1\r")
mySerial.print("http://posttestserver.com/post.php\r");
ОТКЛИК:
OK
//Set custom request headers
mySerial.print("AT+QHTTPCFG=\"requestheader\",1\r")
ОТКЛИК:
OK
//Initiate post requst (length 187 characters, 60s to write, 7s to read)
mySerial.print("AT+QHTTPPOST=187,60,7\r");
ОТКЛИК:
СОЕДИНЯТЬ
//SEND REQUEST HEADER
mySerial.print("POST/post.php HTTP/1.1\r\n");//25 chars
mySerial.print("HOST: posttestserver.com\r\n");//26 chars
mySerial.print("Accept: */*\r\n");//13 chars
mySerial.print("User-Agent: QUECTEL_MODULE2\r\n");//29 chars
mySerial.print("Connection: Keep-Alive\r\n");//24 chars
mySerial.print("Content-Type: application/x-www-form-urlencoded\r\n");//49 chars
mySerial.print("Content-Length: 0\r\n");//19 chars
mySerial.print("\r\n");//2 chars
... ОТСУТСТВУЕТ: через 60 секунд должен появиться ответ OK, указывающий на успешную отправку.
mySerial.print("AT+QHTTPREAD=5\r");
ОТКЛИК:
+ ОШИБКА CME: 3804
issueCommand
? Почему после него нет\r
(посколькуAT+QHTTPPOST....
раньше включал его)? Кроме того, я почти уверен, что это не имеет ничего общего сc
илиc++
; тегаarduino
должно быть достаточно. - person KevinDTimm   schedule 14.10.2016