Html 400使用AT命令向服务器发送GET请求时出错
所以我尝试使用和Arduino Due以及SIM7600 LTE屏蔽向服务器发送GET请求。我尝试了多台服务器,但都没有用,我也不确定自己做错了什么。下面是我的AT命令Html 400使用AT命令向服务器发送GET请求时出错,html,http,arduino,at-command,gprs,Html,Http,Arduino,At Command,Gprs,所以我尝试使用和Arduino Due以及SIM7600 LTE屏蔽向服务器发送GET请求。我尝试了多台服务器,但都没有用,我也不确定自己做错了什么。下面是我的AT命令 19:34:00.607 -> AT+CHTTPACT="website.co.uk",80 19:34:00.710 -> +CHTTPACT: REQUEST 19:34:07.533 -> GET website.co.uk/4gtest.php HTTP/1.0 19:34:12.302 -> H
19:34:00.607 -> AT+CHTTPACT="website.co.uk",80
19:34:00.710 -> +CHTTPACT: REQUEST
19:34:07.533 -> GET website.co.uk/4gtest.php HTTP/1.0
19:34:12.302 -> Host: website.co.uk
19:34:19.101 -> Content-Length: 42
19:34:28.000 ->
19:34:28.000 -> OK
以下是回应:
19:34:28.581 -> +CHTTPACT: DATA,295
19:34:28.581 -> http/1.1 400 bad request
19:34:28.581 -> server: nginx
19:34:28.581 -> date: tue, 04 feb 2020 19:34:27 gmt
19:34:28.581 -> content-type: text/html
19:34:28.581 -> content-length: 150
19:34:28.581 -> connection: close
19:34:28.581 ->
19:34:28.581 -> <html>
19:34:28.581 -> <head><title>400 Bad Request</title></head>
19:34:28.615 -> <body>
19:34:28.615 -> <center><h1>400 Bad Request</h1></center>
19:34:28.615 -> <hr><center>nginx</center>
19:34:28.615 -> </body>
19:34:28.615 -> </html>
19:34:28.648 ->
19:34:28.648 -> +CHTTPACT: 0
19:34:28.581->+chttact:DATA,295
19:34:28.581->http/1.1 400错误请求
19:34:28.581->服务器:nginx
19:34:28.581->日期:2020年2月4日星期二19:34:27 gmt
19:34:28.581->内容类型:text/html
19:34:28.581->内容长度:150
19:34:28.581->连接:关闭
19:34:28.581 ->
19:34:28.581 ->
19:34:28.581->400错误请求
19:34:28.615 ->
19:34:28.615->400错误请求
19:34:28.615->
nginx
19:34:28.615 ->
19:34:28.615 ->
19:34:28.648 ->
19:34:28.648->+CHTTACT:0
肯定有一个互联网连接,因为它从服务器返回自定义错误页面,但我不确定为什么它不能获得我想要的页面。
任何帮助都将不胜感激
谢谢我已经能够通过以下请求获得服务器响应:
GET /4gtest.php HTTP/1.1<CR><LF>
Host: website.co.ukCR><LF>
<CR><LF>
<CR><LF>
GET/4gtest.php HTTP/1.1
主持人:website.co.ukCR>
我得到了错误404
响应,可能是因为它是一个当前已被删除的测试页面。无论如何,这不是错误400,这意味着请求至少没有格式错误
有关请求的一些说明:
GET
命令之后,只需要路径(正如user@juraj的评论正确建议的那样)HTTP/1.1
,因此我对请求使用了相同的版本Host:website.co.uk
+
对终止请求的头部分关于
内容长度
我在请求中省略了内容长度
字段。正如在对的回答中精辟地解释的那样,此字段指定消息正文中包含的八位字节数,在头之后。但是:
当我尝试将website.co.uk从GetTime中删除时,它根本不起作用。我得到了+CHTTPAT:227的响应,这是网络错误,尽管我知道网络连接很好嘿,这真的很有帮助!我发现问题出在+部分。我不知道如何从arduino代码中发送这个。谈论你的arduino问题,那是另一个问题。请随意提出一个新问题,并对该问题进行很好的解释,并将此问题链接起来以供参考。