2016-04-26 11 views
0

Telit GE910セルモジュールを使用して、セルネットワーク経由でHTTPリクエストを作成しようとしています。私はFTDIボードを介してコンピュータのUSBポートに接続し、端末からATコマンドを送信しています。 ATコマンドを使用して、コマンドモードでソケットを正常に開いてHTTPリクエストを送信しています。セルモジュールでHerokuアプリケーションをリクエストするとHTTP 505エラーが発生する

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リクエストに誤った間隔に関係している1つのまたは2のフォーラムで読みました。私は認識されない文字が問題を引き起こしていると思う。何が起こっている?彼らは一貫して「A」、「Space」、「P」の前に上がります。他の文字もあるかもしれませんが、それらは私が見たものです。

+0

Btwを使用すると、cURL、ESP8266 wifiモジュールで構築されたWiFiクライアント、およびLinkIt ONE IoT開発ボード向けに構築されたTCPクライアントを使用してHeroku Webサーバーに正常にHTTPリクエストを送信できます。 – oregano

答えて

2

私は505応答を得ていた理由を考え出しました。それから私は400を得ることを始めたが、私はそれをまた考え出した!

Nimbelinkのソケットダイヤル(Telitセルモジュールを使用するベンダー)のアプリケーションノートには、Telit GE910を搭載したモジュールが1つあります.HTTPリクエストを入力すると例えばGET/HTTP/1.1)あなたはctrl + jを2回押してリクエストの終了を知らせることを意味します。

さて、私はCoolTermで私のシリアル通信のすべてをやり始めましたので、私が送っていた16進数を見ることができました。 (私が望むのは、私が のキャラクタを捕まえることができたということです。実際には、CoolTermで登場しませんでした。)ctrl + jの結果が一行改行(HEX:0A)になります。 HTTPのドキュメントによると、行の終わりを知らせるために、改行改行(HEX:0D 0A)を使用することになっています。 (Heroku also says it has to be formatted like this.)これは私がを入力したときに送信するもので、と入力します。だから私がGET/HTTP/1.1と入力したら、を2回入力しても、リクエストは得られます。 HEAD/HTTP/1.1のheroku.comへのリクエストも400として返されますが、それは次のようになります。

HTTP 1.1にはホストが必要です(これはhereでした)。だから、私は正しい行の終わりですべてを行う場合

GET/HTTP/1.1 
Host: heroku.com 

それは動作します!私のサーバーに投稿するためにも機能します。

関連する問題