首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HTTP GET给出400个错误请求(telnet,arduino)

HTTP GET给出400个错误请求(telnet,arduino)
EN

Stack Overflow用户
提问于 2014-06-27 12:17:02
回答 1查看 987关注 0票数 0

为了学校的一个项目,我正在建造一个小型的Arduino气象站。这个站点将其数据发送到PHP页面(使用CC3000),该页面将数据放入MySQL数据库。我几天前开始工作的代码,现在不知怎么停止工作了。问题是我从服务器得到了一个400个错误的请求。我使用的代码如下

代码语言:javascript
复制
while (!client.connected()){
    Connect();
  }
  client.fastrprint(F(" GET "));
  client.fastrprint(PAGE);
  client.fastrprint(F("?sensor="));
  client.fastrprint(sensor);
  client.fastrprint(F("&&unit="));
  client.fastrprint(unit);
  client.fastrprint(F("&&value="));
  client.fastrprint(charBuffer);
  client.fastrprint(F("&&pass="));
  client.fastrprint(F(" HTTP/1.1\r\n"));
  client.fastrprint(F("Host: ")); 
  client.fastrprint(SERVER); 
  client.fastrprint(F(":80\r\n"));
  client.fastrprint(F("\r\n"));
  client.println();

现在,大部分代码来自于adafruit的示例函数。奇怪的是,当我使用telnet发送相同的请求时,我还会得到一个HTTP 400错误请求。但是,当我使用浏览器请求URL时,PHP页面接受数据并将其放入我的数据库中。下面是我在telnet中使用的命令。

代码语言:javascript
复制
GET /weer/add.php?sensor=DHT&&unit=C&&value=99.99&&pass= HTTP:/1.1
Host:www.---.nl

有人能帮我找出我的要求出了什么问题吗?

服务器运行nginx1.7.0,如果这有帮助的话

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-07 11:18:12

因此,我更改了代码,以便它使用格式字符串的缓冲区来编译字符串。然后使用client.println发送此缓冲区。最后,我仍然在向我的服务器发送完全相同的消息,但现在它起作用了。我猜client.fastrprint把事情搞砸了。

代码语言:javascript
复制
String buffer = "GET ";
  buffer += PAGE;
  buffer += "?sensor=";
  buffer += sensor;
  buffer += "&&unit=";
  buffer += unit;
  buffer += "&&value=";
  buffer += charBuffer;
  buffer += "&&pass=";
  buffer += " HTTP/1.1\r\n";
  buffer += "Host: ";
  buffer += SERVER;
  buffer += ":80\r\n\r\n";

  while (!client.connected()){
    Connect();
  }
  client.println(buffer);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24451641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档