2016-04-26 4 views
0

Я пытаюсь использовать сотовый модуль Telit GE910 для создания HTTP-запросов по сети соты. Я подключил его через плату FTDI к USB-порту моего компьютера и отправляю его AT-командами через терминал. Я использую AT-команды для успешного открытия сокета в командном режиме и отправки HTTP-запроса.Ошибка HTTP 505 при запросе приложений Heroku w ячейковый модуль

AT#SD=1,0,80,"google.com",0,0,1 
OK 
�AT#SSEND=1 
> HE�AD� /� HTT�P/1.1 


OK 

SRING: 1 

Я не понимаю, почему эти поднимаются. Когда вы делаете запросы на google.com, это нормально, но все, что размещено на Heroku, дает мне ошибку 505.

HTTP/1.1 505 HTTP Version Not Supported 
Connection: close 
Server: Cowboy 
Date: Tue, 26 Apr 2016 20:39:34 GMT 
Content-Length: 0 

Я прочитал в одном или двух форумах, что это 505 ответ не является специфичной для Heroku и должен сделать с неправильным шагом в запросе HTTP. Я подозреваю, что непризнанные символы создают проблему. Что происходит? Они последовательно появляются до «А», «пространства» и «Р»; могут быть и другие письма, но те, которые я видел.

+0

Btw, я могу успешно выполнить HTTP-запросы на свой веб-сервер Heroku, используя cURL, WiFi-клиенты, построенные на модуле wifi ESP8266, и TCP-клиент, созданный для DevI-платы LinkIt ONE IoT. – oregano

ответ

2

Хорошо, я понял (я думаю), почему я получил ответ 505. Затем я начал получать 400, но я тоже понял это!

В примечании к приложению для сокетов от Nimbelink (который является поставщиком, использующим модули ячейки Telit - у меня есть один из их модулей, на котором есть Telit GE910), он говорит, что после того, как вы введете свой HTTP-запрос (например, GET/HTTP/1.1), вы должны нажать ctrl + j дважды, чтобы сигнализировать о завершении запроса.

Ну, я начал делать все свое серийное сообщение в CoolTerm, чтобы я мог видеть HEX, который я отправлял. (Надеюсь, что я смог поймать персонажей - я этого не сделал, на самом деле они не появляются в CoolTerm.) ctrl + j приводит к одному каналу (HEX: 0A). Согласно документации по HTTP, чтобы сигнализировать о конце линии, вы должны использовать канал возврата каретки (HEX: 0D 0A). (Heroku also says it has to be formatted like this.) Это то, что я отправляю, когда я ударил введите. Поэтому, если я закончил GET/HTTP/1.1 с , введите дважды, запрос получится. Хотя даже запрос HEAD/HTTP/1.1 на heroku.com возвращается как 400. Но это следующее:

Согласно RFC (который я узнал here), для HTTP 1.1 требуется Host. Так что если я все это делаю с правильными окончаниями линий

GET/HTTP/1.1 
Host: heroku.com 

это работает! Он также работает для публикации на моем сервере.

 Смежные вопросы

  • Нет связанных вопросов^_^