我正在使用ESP8266从Arduino Uno发送GET请求。请求已发送,但我无法打印收到的回复。
中的代码我已经更改了连接到服务器的代码,我可以在服务器的日志中看到GET请求。
我尝试了
while (ser.available())
{
Serial.write(ser.read());
}
在Serial.println("AT+CIPCLOSE");
声明之后。
但我在"AT+CIPCLOSE"
修改 这是我的整个代码:
// connect 10 to TX of Serial USB
// connect 11 to RX of serial USB
SoftwareSerial ser(10, 11); // TX, RX
// this runs once
void setup()
{
// enable debug serial
Serial.begin(9600);
// enable software serial
ser.begin(9600);
// reset ESP8266
ser.println("AT+RST");
}
// the loop
void loop()
{
// TCP connection
String cmd = "AT+CIPSTART=\"TCP\",\"";
cmd += "192.168.0.25";
cmd += "\",3000";
ser.println(cmd);
if(ser.find("Error"))
{
Serial.println("AT+CIPSTART error");
return;
}
// prepare GET string
String getStr = "GET /api/myservice";
getStr += "\r\n\r\n";
// send data length
cmd = "AT+CIPSEND=";
cmd += String(getStr.length());
ser.println(cmd);
if(ser.find(">")){
ser.print(getStr);
}
else
{
ser.println("AT+CIPCLOSE");
// alert user
Serial.println("AT+CIPCLOSE");
// CODE I FOUND FOR READING THE REPLY FROM SERVER:
while (ser.available())
{
// char c = ser.read();
Serial.write(ser.read());
// if (c == '\r') Serial.print('\n');
}
}
delay(1000);
}
ESP详细信息:
ESP-01
AT版本:0.40.0.0
答案 0 :(得分:0)
如果您只是努力阅读回复,那么答案很简单;
在尝试阅读之前,您正在关闭TCP连接:
ser.println("AT+CIPCLOSE");
// alert user
Serial.println("AT+CIPCLOSE");
// CODE I FOUND FOR READING THE REPLY FROM SERVER:
while (ser.available())
{
将读数移动到ser.print(getStr);
正下方的上方块中,但也会在两者之间添加延迟。