我正在为Arduino + ethernet shield编写代码,以便使用$_GET
方法(PHP)将数据发送到Mysql数据库。
我已经在浏览器上测试了PHP代码并且工作正常,但是在Arduino上它没有用。我不知道问题出在哪里。我一直在寻找其他论坛,找不到任何答案。以下是我的代码,如果有人能帮助解决崩溃,我将不胜感激
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte ip[] = { 192, 168, 1, 60 }; //IP (WEB CLIENT)
byte server[] = { 192, 168, 1, 8 }; //IP (SERVER)
EthernetClient client;
void setup() {
Serial.begin(9600);
Ethernet.begin(mac, ip);
if (client.connect(server, 8095)) {
Serial.println("CONECTED");
client.print("GET http://192.168.1.8:8095/prs/Query.php?a=");
client.print(2);
client.print(" HTTP/1.1\r\n");
Serial.println("Information sent successfully!");
delay(1000);
} else {
Serial.println("Conection fail");
}
}
void loop() {
}
答案 0 :(得分:0)
我注意到以太网客户端变量/对象被称为cliente(末尾有一个e),其中声明了它,但是在这之下,对象的名称是client(最后没有e),如果你纠正了这个区别这个名字有用吗?
EthernetClient cliente;
client.connect(server, 8095)
答案 1 :(得分:0)
client.print("GET http://192.168.1.8:8095/prs/Query.php?a=");
client.print(2);
client.print(" HTTP/1.1\r\n");
这不是格式正确的HTTP 1.1请求:
它包含请求行中的协议,主机名和端口。这在HTTP代理请求之外是不合适的。
它不包含Host
标题。
请求后不包含两个换行符。
正确的请求可能类似于:
"GET /prs/Query.php?a=2\r\nHost: 192.168.1.8\r\n\r\n"