Safari 显示 "can't open page" 但 JSON return 是正常的
Safari says "can't open page" but JSON return is normal
我的自制 Wi-Fi 温度传感器在连接到我的一个接入点时可以工作,但在连接到另一个接入点时我得到了 "Safari can't open the page because the server unexpectedly dropped the connection." 然而,查看设备日志(在 Arduino 中)它似乎正确响应了一个非常短 JSON 记录:
new client
Request: GET /temperature/F HTTP/1.1
Response: {"TempF":65.30}
Client disconnected
此外,使用 curl http://xx.yy.zz.ww/temperature/F
访问设备会产生所需的 JSON 响应。
我不知道从哪里开始寻找问题(用 Chrome 尝试并得到相同的结果)。
我启用了 Safari 的 "Develop" 菜单。我已经完成了所有路由器设置,没有发现任何可能导致此问题的原因。
我正在使用 Arduino ESP8266 库。
我没有 Arduino 板,也没有使用那个库,但是我认为这可以解决你的问题。
至于我搜索的Arduino ESP8266 library,它只是一个TCP和UDP库,而不是一个HTTP库。所以你必须自己实现所有的 HTTP headers ,这也可以通过你的问题中的 Request
字段来指示。然后我认为如果用有效的 HTTP 响应格式填充 Response
可能会解决这个问题,例如
Response: HTTP/1.1 200 OK\r\nContent-Length: 15\r\n\r\n{"TempF":65.30}
我的自制 Wi-Fi 温度传感器在连接到我的一个接入点时可以工作,但在连接到另一个接入点时我得到了 "Safari can't open the page because the server unexpectedly dropped the connection." 然而,查看设备日志(在 Arduino 中)它似乎正确响应了一个非常短 JSON 记录:
new client
Request: GET /temperature/F HTTP/1.1
Response: {"TempF":65.30}
Client disconnected
此外,使用 curl http://xx.yy.zz.ww/temperature/F
访问设备会产生所需的 JSON 响应。
我不知道从哪里开始寻找问题(用 Chrome 尝试并得到相同的结果)。
我启用了 Safari 的 "Develop" 菜单。我已经完成了所有路由器设置,没有发现任何可能导致此问题的原因。
我正在使用 Arduino ESP8266 库。
我没有 Arduino 板,也没有使用那个库,但是我认为这可以解决你的问题。
至于我搜索的Arduino ESP8266 library,它只是一个TCP和UDP库,而不是一个HTTP库。所以你必须自己实现所有的 HTTP headers ,这也可以通过你的问题中的 Request
字段来指示。然后我认为如果用有效的 HTTP 响应格式填充 Response
可能会解决这个问题,例如
Response: HTTP/1.1 200 OK\r\nContent-Length: 15\r\n\r\n{"TempF":65.30}