arduino - 404 Bad request error by using AT Commands to Send Post and Get Request Using Arduino Serial Monitor
问题描述
我正在使用连接到我的 Arduino 的 RX 和 TX 引脚的 ESP8266 v1。我正在尝试发送 AT 命令来请求发布查询。但我唯一得到的是 400 错误请求错误。我在我的 PC 上部署了 web api。ESP8266 也连接到同一网络。我可以通过 AT+CIPSTART=1,"TCP","192.168.0.150",8011 连接。它显示连接正常,然后我设置要发送的字符的长度,我只写了 post 命令,但我得到 400 错误。
以下是我遵循的每个命令都成功的步骤,除了 > 符号之后的 post 命令。
AT
AT+RST
AT+CWMODE=3
AT+CIPSTART=1,"TCP","192.168.0.150"8011
AT+CIPSEND=1,211
然后它显示
>
POST /api/runtime HTTP/1.1\r\n
Host: 192.168.0.150:8011\r\n
Content-Type: application/json\r\n
Content-Length: 37\r\n
Accept: */*\r\n
Connection: Close\r\n
Cache-Control: no-cache\r\n\r\n
{"Value1":22,"Value2":45,"Value3":98}
我可以从邮递员应用程序发送命令,但不能使用 AT 命令。我的 API 地址是
http://192.168.0.150:8011/api/RunTime
我想补充的另一件事是直接在串行监视器上编写这些命令,回车和波特率为 115200 的新行。我一直在挠头一个星期,发现没有运气。请帮忙。谢谢
我的 ESP8266 版本是
AT+GMR
AT version:1.3.0.0(Jul 14 2016 18:54:01)
SDK version:2.0.0(5a875ba)
Farylink Technology Co., Ltd. v1.0.0.2
May 11 2017 22:23:58
OK
解决方案
请求格式没问题。我发现我使用 REALTERM 软件发送相同的请求,作为回应,我得到了我想要的。因此,如果有人遇到问题,我只是通过使用 REALTERM 来验证它。然而,仍然困扰我的一件事是我需要按两次发送按钮才能在 REALTERM 中发送请求。我相信这可能是由于定义的长度
AT+CIPSEND=1,{CONTENTLENGTHINNUMBER}
我希望这对某人有所帮助。
推荐阅读
- laravel - 将两个字段连接成别名 laravel
- apache-kafka - Kafka mqtt 连接器如何将 mqtt 主题作为密钥发送?
- oracle - SQL Developer 导入科学计数法错误
- spring - Java 出站适配器处理
- java - 如何在我的数组列表中找到一个元素?
- angular - ngx-translate how to test components
- c# - WebClient GET 请求失败,出现 401 Unauthorized
- c# - C#。ssl 证书。System.NotSupportedException
- angular - 组件中的 Angular If 条件不起作用
- amazon-web-services - 安全组/防火墙规则等的云供应商中立解决方案?