Nodemcu不响应http GET请求

时间:2019-07-17 05:07:09

标签: php http arduino esp8266 nodemcu

我想从我的nodemcu向本地服务器发送HTTP GET请求。 nodemcu和我的笔记本电脑都连接到同一Wifi网络。尽管nodemcu连接到网络,但它不发送请求。 我尝试手动发送请求并使用“邮递员”,然后它可以工作。所以我认为问题出在nodemcu代码或设备上。 任何想法都欢迎。


#include <ESP8266WiFi.h>
#include <WiFiClient.h> 
#include <ESP8266WebServer.h>
#include <ESP8266HTTPClient.h>

/* Set these to your desired credentials. */
const char *ssid = "******";  //ENTER YOUR WIFI SETTINGS
const char *password = "****";

//Web/Server address to read/write from 
//website or IP address of server

//=======================================================================
//                    Power on setup
//=======================================================================

void setup() {
  delay(1000);
  Serial.begin(115200);
  WiFi.mode(WIFI_OFF);        //Prevents reconnection issue (taking too long to connect)
  delay(1000);
  WiFi.mode(WIFI_STA);        //This line hides the viewing of ESP as wifi hotspot

  WiFi.begin(ssid, password);     //Connect to your WiFi router
  Serial.println("");

  Serial.print("Connecting");
  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  //If connection successful show IP address in serial monitor
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());  //IP address assigned to your ESP
}

//=======================================================================
//                    Main Program Loop
//=======================================================================
void loop() {
  HTTPClient http;    //Declare object of class HTTPClient

  String ADCData, station, getData, Link;
  int adcvalue=253;  //Read Analog value of LDR
  ADCData = String(adcvalue);   //String to interger conversion
  station = "B";

  //GET Data
  getData = "?status=" + ADCData + "&station=" + station ;  //Note "?" //added at front
  Link = "http://localhost/welcome.php" + getData;

  http.begin(Link);     //Specify request destination

  int httpCode = http.GET();            //Send the request
  String payload = http.getString();    //Get the response payload

  Serial.println(httpCode);   //Print HTTP return code
  Serial.println(payload);    //Print request response payload

  http.end();  //Close connection

  delay(5000);  //GET Data at every 5 seconds
}
//=======================================================================

此处显示localhost站点的php代码。

<html>
<body>

status: <?php echo $_GET["status"]; ?><br>
station: <?php echo $_GET["station"]; ?>

</body>
</html>

connecting..... connected to:"****" -1 -1

2 个答案:

答案 0 :(得分:0)

localhost是“ self”的缩写。您是在告诉NodeMCU将请求发送给自己,尽管它甚至可能不了解本地主机。您需要使用尝试发送请求的计算机的实际名称或IP地址。 Localhost将永远无法以您尝试在此处使用它的方式工作(将请求从一台计算机发送到另一台计算机)。

答案 1 :(得分:-1)

尝试此:

<?php 

echo "<pre>";
print_r($_REQUEST);

?>