2016-07-05 5 views
0

내 안드로이드 장치로 일부 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)를 사용했지만 더 많은 가능성 (날짜, 서버, 내용 언어 등)이 있습니다.

이 필드는 선택 사항입니까, 아니면 올바른 응답을 만드는데 사용해야합니까? 여기

내가 이해하지 못하는 코드의 조각 :

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

가능한 헤더 필드 목록은 다음에서 찾을 수 있습니다. 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

당신의 안드로이드 장치가 HTTP를 기대한다면 응답을 HTTP 응답으로 선언해야합니다. "HTTP/1.1"은 프로토콜이고 "200 OK"는 상태입니다. 또한 게시 한 예와 같이 "\ r \ n"위치에 있어야합니다. http://code.tutsplus.com/tutorials/http-headers-for-dummies--net-8039를 숙지하시기 바랍니다. –

+0

감사합니다! 이 링크는 많은 도움이되었습니다 !!! – TeaAge