2 pfeffer Pfeffer 于 2018.03.07 19:02 提问

Arduino wifi链接程序 两个小问题 5C
 #include<ESP8266WiFi.h>
// wifi参数

const char* ssid = "mcwx999";
const char* password = "xm90919595cwj";
// Host
const char* host = “www.baidu.com”;

void setup(){
  Serial.begin(115200);// 波特率
  Serial.println();
  Serial.println("Connecting....");
  Serial.println(ssid);
  WiFi.println(ssid,password);

  // 这里是C语言的问题

while(WiFi.status()!=WL_CONNECTED)
{
delay(500);
Serial.print(".");
}

Serial.println("");
Serial.println("WiFi connected");
Serial.println(WiFi.localIP());

}
int value = 0;
void loop(){
  Serial.println(" connected to");
  Serial.println(host);
  WiFiClient client; 
  const int httpPort = 80;
  if(!client.connect(host,httport)){
   Serial.println("connection failed");
   return;
  }

//Print data to the server that a client is connected to. Prints numbers as a sequence of digits, each an ASCII character (e.g. the number 123 is sent as the three characters '1', '2', '3').
client.print(String("GET/")+"HTTP/1.1\r\n"+"Host:"+host+"/r/n"+"Connection: close\r\n\r\n");
delay(50);

while(client.available()){
  String line = client.readStringUntil('\r');
  Serial.print(line);
}

Serial.println();
Serial.println("closing connection");
delay(5000);
}

这个程序是链接某网站,并且通过串口打印。
1. 这个httpPort是瞎写的吗,还是说是能够查到。
2.WiFiClient我在Arduino的官网上查了一下,WifiLibrary下的一个子类,为什么这里会出现 WiFiClient client; 这样一条命令,我在这个类中并没有看到client.readStringUntil('\r');
3. String(“GET/”), 这个是什么样的操作。

1个回答

caozhy
caozhy   Ds   Rxr 2018.03.09 23:47

String(“GET/”) 应该是请求网站的根路径。
client.print(String("GET/")+"HTTP/1.1\r\n"+"Host:"+host+"/r/n"+"Connection: close\r\n\r\n");
这是典型的http报文头,你打开chrome浏览器,按键盘f12网络抓包,随便请求一个网站,就能看到http请求头

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!