首页 文章

为什么ESP8266在加载php URL时报告DNS失败?

提问于
浏览
0

使用ESP8266并使用以下AT命令,我可以成功获取网页:

AT+CIPSTART="TCP","www.somewebsite.com",80
AT+CIPSEND=80
> GET http://www.somewebsite.com HTTP/1.0
<I get a bunch of HTML here>

到现在为止还挺好 . 现在我的网站上有一个php页面,它接受一些参数并相应地更新数据库中的表 . 所以当我输入:

http://www.mywebsite.com/mypage.php?arg1 = one&arg2 = 2

它成功更新了表格 . 现在,当我尝试使用ESP8266做同样的事情时,我得到DNS失败:

AT+CIPSTART="TCP","http://www.mywebsite.com/mypage.php?arg1=one&arg2=two",80
<get DNS fail here>

即使我尝试没有参数的php页面我得到DNS失败:

AT+CIPSTART="TCP","http://www.mywebsite.com/mypage.php",80
<get DNS fail here>

有谁知道发生了什么?可能是php页面不在端口80上吗?如果是这种情况,我该如何找出它所在的端口?

顺便说一句,如果我在我的网站上使用html页面做同样的事情就可以了 .

编辑:当我尝试这个:

AT+CIPSTART="TCP","www.mywebsite.com",80
> GET /mypage.php?arg1=one,arg2=two

我得到这个输出:

未找到错误404

当我尝试:

AT+CIPSTART="TCP","www.mywebsite.com",80
> GET http://www.mywebsite.com/mypage.php?arg1=one,arg2=two

我得到www.mywebsite.com/index.html的html代码而不是php页面 .

我也不确定GET命令中的“HTTP / 1.0”是什么?

1 回答

  • 4

    您不要将URL放在 AT+CIPSTART 行,只需要服务器的名称 . URL的其余部分位于 GET 之后 . 此外,如果您的服务器执行虚拟主机托管,则需要发送 Host: 标头以告知其使用哪个服务器名称 .

    AT+CIPSTART="TCP","www.mywebsite.com",80
    > GET /mypage.php?arg1=one&arg2=two HTTP/1.1
    > Host: www.mywebsite.com
    

相关问题