2016-07-05 3 views
0

私はAndroidデバイスでいくつかのLEDをトグルしたいと思います。これらのLEDは、私のArduinoのデジタルピンに接続されています。これはESP8266にも接続されています。今、私のESP8266はAccessPointとして定義されており、私のタブレットはHTTPリクエストを送ることができます(例えばhttp://192.168.4.1:80/?pin=11)。 私はここにコードを見つけましたhttp://allaboutee.com/2015/01/20/esp8266-android-application-for-arduino-pin-control/ESP8266とArduinoでHTTPレスポンスを構築する方法

それはうまく動作しますが、私の質問は、どのHTTPヘッダーフィールドを使用する必要がありますか?このコードでは、彼はいくつかのもの(例えば、Content-Length)を使用しましたが、それ以上の可能性があります(Date、Server、Content-Language、...)。

これらのフィールドはオプションですか、適切な応答を作成するために使用する必要がありますか?ここで

は、私は理解していないコードの一部です:

void sendHTTPResponse(int connectionId, String content) 

{

String httpResponse; 
String httpHeader; 

httpHeader = "HTTP/1.1 200 OK\r\nContent-Type: text/html; charset=UTF-8\r\n"; 
httpHeader += "Content-Length: "; 
httpHeader += content.length(); 
httpHeader += "\r\n"; 
httpHeader +="Connection: close\r\n\r\n"; 
httpResponse = httpHeader + content + " "; 
sendCIPData(connectionId,httpResponse); 

}

+0

可能なヘッダーフィールドのリストは、次のURLにあります。https://en.wikipedia.org/wiki/List_of_HTTP_header_fields – TeaAge

答えて

1

それは主にフィールドが必要とされているクライアント(すなわち消費者)に依存し、これは必須です。

常に必要なのは「HTTP/1.1 200 OK」だけです。もちろん、でない場合は、にOKメッセージを送信すると、そのステータスコードを置き換える必要があります。

+0

高速返信@MarcelStörありがとうございます!だから私は私のAndroidデバイス上でこの "HTTP/1.1 200 OK"を持っている必要がありますが、他のフィールドはオプションの権利ですか?そして、このHTTP/1.1 200は何を表していますか? – TeaAge

+1

あなたのAndroidデバイスがHTTPを予期している場合は、その応答をHTTP応答として宣言する必要があります。 「HTTP/1.1」はプロトコル、「200 OK」はステータスです。また、投稿した例のように、「\ r \ n」が必要です。 http://code.tutsplus.com/tutorials/http-headers-for-dummies--net-8039に慣れさせることをお勧めします。 –

+0

ありがとうございました!このリンクは多くの助けになりました! – TeaAge

関連する問題