2ALLВсем доброго времени суток. Прошу вашей помощи в решении проблем использования HTTP
S с sim900.
Пытаюсь подключиться к REST API с использованием HTTP
S согласно "SIM900 HTTPS AT Commands Set_ V1.00"
Проблемы:
1. Запросы GET c параметрами в большинстве случаев возвращают ошибку по таймауту, в редких случаях - DNS error. Успешных запросов 0.
2. Запросы POST с параметрами возвращают response с нулевой длиной (+HTTPACTION:1,200,0)
Описание:
перед каждым запросом сбрасывал модуль по питанию и делал следующую инициализацию
Код
AT+SAPBR=3,1,"Contype","GPRS"
OK
AT+SAPBR=3,1,"APN","internet.beeline.ru"
OK
AT+SAPBR=3,1,"USER","beeline"
OK
AT+SAPBR=3,1,"PWD","beeline"
OK
AT+SAPBR=1,1
OK
AT+SAPBR=2,1
+SAPBR: 1,1,"10.203.xxx.yyy"
OK
вариант запроса GET с параметрами в URL
Код
AT+HTTPSSL=1
OK
AT+HTTPINIT
OK
AT+HTTPPARA="CID","1"
OK
AT+HTTPPARA="URL","https://ZZZZ.herokuapp.com/api/v1/session/new.txt?serial=1234567890&ts=1423128112&nonce=12345&sign=SIGNATURE"
OK
AT+HTTPPARA="REDIR","1"
OK
AT+HTTPACTION=0
OK
+HTTPACTION:0,408,0
Вариант запроса GET с параметрами в теле запроса:
Код
AT+HTTPSSL=1
OK
AT+HTTPINIT
OK
AT+HTTPPARA="CID","1"
OK
AT+HTTPPARA="URL","https://ZZZZ.herokuapp.com/api/v1/session/new.txt"
OK
AT+HTTPPARA="REDIR","1"
OK
AT+HTTPDATA=67,9000
DOWNLOAD
[i]serial=1234567890&ts=1423128112&nonce=12345&sign=SIGNATURE[/i]
OK
AT+HTTPACTION=0
OK
+HTTPACTION:0,408,0
AT+HTTPTERM
OK
Запрос POST:
Код
AT+HTTPSSL=1
OK
AT+HTTPINIT
OK
AT+HTTPPARA="CID","1"
OK
AT+HTTPPARA="URL","https://ZZZZ.herokuapp.com/api/v1/session"
OK
AT+HTTPPARA="REDIR","1"
OK
AT+HTTPPARA="CONTENT","application/x-www-form-urlencoded"
OK
AT+HTTPPARA="UA","Arduino Ocean"
OK
AT+HTTPDATA=67,9000
DOWNLOAD
[i]serial=1234567890&ts=1423128112&nonce=12345&sign=SIGNATURE[/i]
OK
AT+HTTPACTION=1
OK
+HTTPACTION:1,200,0
GET и POST запросы проверялись через cURL - точно работают.
В логах сервера есть только POST запрос от sim900. Запросов GET в логах нет.
Если делать запросы GET без параметров, то они видны на сервере, но без параметров обрабатываются сервером как bad request (400)
Использую Arduino GPRS Shield с SIM900 на борту. Модель S2-1040S-Z095P
AT+CGMR
Revision:
1137B03SIM900M64_ST_ENHANCEПрошу помощи и советов что дальше делать:
- что я делаю не так, чтобы получить ненулевой response в запросах POST и запросы GET дошли до сервера?
- документация из того, что я нашел - весьма скудная, но может кто-то присоветует где найти подробности\описания про SSL реализацию?
- нужно ли/можно ли вместо "IP Application" использовать "TCPIP Application toolkit", чтобы формировать запросы и читать ответы сервера напрямую вместе с заголовками? Будет ли работать SSL в этом случае?
Заранее благодарен за помощь.
P.S. не нашел как "свертывать" логи
Сообщение отредактировал oceanresque - Feb 11 2015, 14:25