【问题标题】:How to build HTTP Response with ESP8266 and Arduino如何使用 ESP8266 和 Arduino 构建 HTTP 响应
【发布时间】:2016-07-05 17:57:30
【问题描述】:

我想用我的 Android 设备切换一些 LED。这些 LED 连接到我的 Arduino 的数字引脚,该引脚也连接到 ESP8266。现在,我的 ESP8266 被定义为一个接入点,我的平板电脑可以发送 HTTP 请求(例如http://192.168.4.1:80/?pin=11)。 我在这里找到了代码http://allaboutee.com/2015/01/20/esp8266-android-application-for-arduino-pin-control/

它工作正常,但我的问题是应该使用哪个 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);

}

【问题讨论】:

标签: http arduino http-headers esp8266


【解决方案1】:

这在很大程度上取决于客户(即消费者)哪些字段是必需的,哪些是强制性的。

唯一始终需要的是“HTTP/1.1 200 OK”。当然,如果您没有发送 OK 消息,则需要替换该状态码。

【讨论】:

  • 感谢@MarcelStör 的快速回复!因此,如果我想在我的 Android 设备上获得反馈,我需要有这个“HTTP/1.1 200 OK”,但其他字段是可选的,对吗?这个 HTTP/1.1 200 代表什么?
  • 如果您的 Android 设备需要 HTTP,那么您需要将响应声明为 HTTP 响应。 “HTTP/1.1”是协议,“200 OK”是状态。如您发布的示例中所示,您还需要放置“\r\n”。我建议你熟悉code.tutsplus.com/tutorials/http-headers-for-dummies--net-8039
猜你喜欢
  • 2018-11-17
  • 1970-01-01
  • 2017-12-28
  • 1970-01-01
  • 1970-01-01
  • 2016-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多