conection refused on http.get() request
Posted: Fri May 21, 2021 3:11 pm
Hi,
I am trying to connect two Wemos D1 Mini pro (Version 1). One has a DHT22 module attached the other one asks for the temperature and the heat index using the HTTPClient.Get() method from ESP8266HTTPClient.h. But all I get back is a "connection refused" error. Calling the "DHT22- server" from a web browser it works like a charm.
Both Wemos modules are of course connected to the same wifi network. I did not post the complete client code, because it is already to long. How the code works:
As soon as the wifi connection is available a ticker calls the SetBit2CallServer() method to set a flag which will be checked in the loop() to start asking the server every 15 seconds. Then the flag will be set to false until the ticker sets it back to true.
What am I doing wrong here? Thanks for any help!
HobbyDev
I am trying to connect two Wemos D1 Mini pro (Version 1). One has a DHT22 module attached the other one asks for the temperature and the heat index using the HTTPClient.Get() method from ESP8266HTTPClient.h. But all I get back is a "connection refused" error. Calling the "DHT22- server" from a web browser it works like a charm.
Both Wemos modules are of course connected to the same wifi network. I did not post the complete client code, because it is already to long. How the code works:
As soon as the wifi connection is available a ticker calls the SetBit2CallServer() method to set a flag which will be checked in the loop() to start asking the server every 15 seconds. Then the flag will be set to false until the ticker sets it back to true.
What am I doing wrong here? Thanks for any help!
HobbyDev
Code: Select all
#include <ESP8266WiFi.h>
#include <Ticker.h>
WiFiEventHandler wifiConnectHandler;
#include <ESP8266HTTPClient.h>
const char* serverNameTemperatur = "http://192.168.178.96/KorrigierteTemperatur";
const char* serverNameHeatIndex = "http://192.168.178.96/KorrigierterHeatIndex/";
Ticker CallServerTimer;
float ServerTemperature = 0;
float ServerHeatIndex = 0;
bool CallServer = false;
void SetBit2CallServer(){
CallServer = true;
}
String httpGETRequest(const char* serverName) {
WiFiClient client;
HTTPClient http;
// http.begin(client, "192.168.178.96", 80, "/KorrigierterHeatIndex");
// http.begin(client, serverName);
http.begin(client, "192.168.178.96", 80, "/KorrigierterHeatIndex");
int httpResponseCode = http.GET();
String payload = "--";
if (httpResponseCode>0) {
Serial.print("HTTP Response code: ");
Serial.println(httpResponseCode);
payload = http.getString();
}
else {
Serial.print("Error code: ");
Serial.println(httpResponseCode);
payload = "Error calling the temperature server. Errorcode: " + String(httpResponseCode);
}
// Free resources
http.end();
client.stop();
return payload;
}
void onWifiConnect(const WiFiEventStationModeGotIP& event)
{
Serial.println("Connected to Wi-Fi.");
// Call DHT22 Server every 15 sec
CallServerTimer.attach(15,SetBit2CallServer);
}
void setup() {
....
// neu MQTT
wifiConnectHandler = WiFi.onStationModeGotIP(onWifiConnect);
...
}
loop() {
...
if (CallServer == true){
const char* HttpResult;
char * Position;
HttpResult = httpGETRequest(serverNameTemperatur).c_str();
Position = strstr(HttpResult, "Error");
if (Position != NULL){
ServerTemperature = atof(HttpResult);
}
HttpResult = httpGETRequest(serverNameHeatIndex).c_str();
Position = strstr(HttpResult, "Error");
if (Position != NULL){
ServerHeatIndex = atof(HttpResult);
}
CallServer = false;
}
...
}