Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 400使用AT命令向服务器发送GET请求时出错_Html_Http_Arduino_At Command_Gprs - Fatal编程技术网

Html 400使用AT命令向服务器发送GET请求时出错

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

所以我尝试使用和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 -> 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
  • 请注意,每一行都以两个字符(回车符0x13 ASCII和换行符0x10 ASCII)结尾。指定它很重要,因为在您的问题中,不清楚行是如何终止的
  • 还要注意,在最后一行之后,一个双
    +
    对终止请求的头部分

  • 关于
    内容长度
    我在请求中省略了
    内容长度
    字段。正如在对的回答中精辟地解释的那样,此字段指定消息正文中包含的八位字节数,在头之后。但是:

  • 您问题中的AT命令日志在标题之后没有提到任何正文
  • 如中所述,GET请求中的请求体并没有明确禁止,但不建议使用
  • 是的,您可以使用GET发送请求正文,但它不应该有任何 意思如果您通过在服务器上解析它来赋予它意义 根据内容更改您的响应,那么您将忽略它 这项建议在


    当我尝试将website.co.uk从GetTime中删除时,它根本不起作用。我得到了+CHTTPAT:227的响应,这是网络错误,尽管我知道网络连接很好嘿,这真的很有帮助!我发现问题出在+部分。我不知道如何从arduino代码中发送这个。谈论你的arduino问题,那是另一个问题。请随意提出一个新问题,并对该问题进行很好的解释,并将此问题链接起来以供参考。