使用 AT 命令在 esp8266 中无法获取
GET not possible in esp8266 wtih AT commands
我正在尝试通过我的 ESP 控制器从网站获取温度。我使用 IE 和 Fiddler 使用相同的请求,它们工作得很好。从 ESP 的角度来看,我也没有做错。
请在下面找到我的 esp 请求和回复。
AT+CIPSTART="TCP","http://myesp8266.comlu.com",80\r\n
CONNECT
OK
AT+CIPSEND=93\r\n
OK
>
GET http://myesp8266.comlu.com/temp_post.php?temps=15 HTTP/1.0\r\n
Host: myesp8266.comlu.com\r\n\r\n`
Recv 93 bytes
SEND OK
+IPD,574:HTTP/1.1 302 Found
Date: Tue, 09 May 2017 02:20:31 GMT
Server: Apache
Location: https://www.000webhost.com/migrate?
utm_source=000&utm_medium=rdr&utm_campaign=old_panel_off&static=true
Content-Length: 299
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="https://www.000webhost.com/migrate?
utm_source=000&utm_medium=rdr&utm_campaign=old_panel_off&static=true">here</a>.</p>
</body></html>
CLOSED
当我使用 IE 时,我收到以下请求
http://myesp8266.comlu.com/temp_post.php?temps=15
response ->
Notice: Undefined index: temperature in /storage/h9/116/1546116/public_html/temp_post.php on line 2
15
Temperature : Celcius
15 is what i expect and im receiving it good...
下面是来自fiddler的代码,我收到了很好的
send ->
GET http://myesp8266.comlu.com/temp_post.php?temps=15 HTTP/1.0
Host: myesp8266.comlu.com
response ->
HTTP/1.1 200 OK
Date: Tue, 09 May 2017 02:08:40 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
Server: awex
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Request-ID: ce6759371cbb05088c5c954aa35de737
<br />
<b>Notice</b>: Undefined index: temperature in
<b>/storage/h9/116/1546116/public_html/temp_post.php</b> on line <b>2</b><br />
15<p>Temperature : Celcius </p>
哪里错了??尝试了许多可能的方式。但没有成功,只有 ESP8266 剩余的工作方式很好。
请帮忙。
谢谢
你的第一个 AT 命令建立了一个 TCP 连接,但包括 http://
它可能不应该因为此时它还不相关(我们只是打开一个套接字)
不正确的AT命令:
AT+CIPSTART="TCP","http://myesp8266.comlu.com",80\r\n
修改后的AT命令:
AT+CIPSTART="TCP","myesp8266.comlu.com",80\r\n
下一个问题是你的get请求
主机名可能只应在 Host
header 上指定,此行也不需要协议 GET 请求 URL 应该与主机相关相信。
您的要求:
GET http://myesp8266.comlu.com/temp_post.php?temps=15 HTTP/1.0\r\n
Host: myesp8266.comlu.com\r\n\r\n
更正请求:
GET /temp_post.php?temps=15 HTTP/1.0\r\n
Host: myesp8266.comlu.com\r\n\r\n
除了这 2 处更改外,猜测这是 AT+CIPSEND
之后的发送长度,因此可能也需要更新它,甚至可能完全忽略该长度。
最后,您在 temp_post.php
中遇到了一个小问题,它会发出通知,您可以通过更改错误报告级别来解决此问题,或者如果您 post 一些代码,我会有一个看 :)。或者,如果你想要一个廉价而讨厌的修复前缀,无论变量是什么导致它带有 @
即 @$myTemps['temperature']
(尽管解决这个问题肯定更好)
简直太美了
我已经删除了http://
Corrected AT command: and modified as you mentioned
AT+CIPSTART="TCP","myesp8266.comlu.com",80\r\n
像魅力一样工作..
啊啊啊啊啊啊啊啊啊啊啊啊..尝试了所有可能的方法除了修改 CIP 启动。
1000 thanks for resolving.
亲爱的你好。
我正在尝试通过我的 ESP 控制器从网站获取温度。我使用 IE 和 Fiddler 使用相同的请求,它们工作得很好。从 ESP 的角度来看,我也没有做错。
请在下面找到我的 esp 请求和回复。
AT+CIPSTART="TCP","http://myesp8266.comlu.com",80\r\n
CONNECT
OK
AT+CIPSEND=93\r\n
OK
>
GET http://myesp8266.comlu.com/temp_post.php?temps=15 HTTP/1.0\r\n Host: myesp8266.comlu.com\r\n\r\n`
Recv 93 bytes
SEND OK
+IPD,574:HTTP/1.1 302 Found
Date: Tue, 09 May 2017 02:20:31 GMT
Server: Apache
Location: https://www.000webhost.com/migrate?
utm_source=000&utm_medium=rdr&utm_campaign=old_panel_off&static=true
Content-Length: 299
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="https://www.000webhost.com/migrate?
utm_source=000&utm_medium=rdr&utm_campaign=old_panel_off&static=true">here</a>.</p>
</body></html>
CLOSED
当我使用 IE 时,我收到以下请求
http://myesp8266.comlu.com/temp_post.php?temps=15
response ->
Notice: Undefined index: temperature in /storage/h9/116/1546116/public_html/temp_post.php on line 2
15
Temperature : Celcius
15 is what i expect and im receiving it good...
下面是来自fiddler的代码,我收到了很好的
send ->
GET http://myesp8266.comlu.com/temp_post.php?temps=15 HTTP/1.0
Host: myesp8266.comlu.com
response ->
HTTP/1.1 200 OK
Date: Tue, 09 May 2017 02:08:40 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
Server: awex
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Request-ID: ce6759371cbb05088c5c954aa35de737
<br />
<b>Notice</b>: Undefined index: temperature in
<b>/storage/h9/116/1546116/public_html/temp_post.php</b> on line <b>2</b><br />
15<p>Temperature : Celcius </p>
哪里错了??尝试了许多可能的方式。但没有成功,只有 ESP8266 剩余的工作方式很好。
请帮忙。
谢谢
你的第一个 AT 命令建立了一个 TCP 连接,但包括 http://
它可能不应该因为此时它还不相关(我们只是打开一个套接字)
不正确的AT命令:
AT+CIPSTART="TCP","http://myesp8266.comlu.com",80\r\n
修改后的AT命令:
AT+CIPSTART="TCP","myesp8266.comlu.com",80\r\n
下一个问题是你的get请求
主机名可能只应在 Host
header 上指定,此行也不需要协议 GET 请求 URL 应该与主机相关相信。
您的要求:
GET http://myesp8266.comlu.com/temp_post.php?temps=15 HTTP/1.0\r\n
Host: myesp8266.comlu.com\r\n\r\n
更正请求:
GET /temp_post.php?temps=15 HTTP/1.0\r\n
Host: myesp8266.comlu.com\r\n\r\n
除了这 2 处更改外,猜测这是 AT+CIPSEND
之后的发送长度,因此可能也需要更新它,甚至可能完全忽略该长度。
最后,您在 temp_post.php
中遇到了一个小问题,它会发出通知,您可以通过更改错误报告级别来解决此问题,或者如果您 post 一些代码,我会有一个看 :)。或者,如果你想要一个廉价而讨厌的修复前缀,无论变量是什么导致它带有 @
即 @$myTemps['temperature']
(尽管解决这个问题肯定更好)
简直太美了
我已经删除了http://
Corrected AT command: and modified as you mentioned
AT+CIPSTART="TCP","myesp8266.comlu.com",80\r\n
像魅力一样工作..
啊啊啊啊啊啊啊啊啊啊啊啊..尝试了所有可能的方法除了修改 CIP 启动。
1000 thanks for resolving.
亲爱的你好。