-->
Page 1 of 1

http.GET() returns -1

PostPosted: Sun Jan 24, 2016 12:21 pm
by ExtraSensory
Hi,

I'm using the NodeMCU with the basic http client example.
Connecting to an http server on my LAN works fine, but going out to the Internet (via a URL) returns -1.

Any suggestions?

Thanks!

Re: http.GET() returns -1

PostPosted: Sun Jan 24, 2016 6:46 pm
by Defozo
Are you using domain names or just entering IPs for web address?
Show your code.

Re: http.GET() returns -1

PostPosted: Mon Jan 25, 2016 2:44 am
by ExtraSensory
I used a domain name. The code is just like the example code (I changed the SSID and PW).
Online the code is here, though the code that comes with my (fresh) Arduino install is slightly different:

Code: Select all/**
 * BasicHTTPClient.ino
 *
 *  Created on: 24.05.2015
 *
 */

#include <Arduino.h>

#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>

#include <ESP8266HTTPClient.h>

#define USE_SERIAL Serial

ESP8266WiFiMulti WiFiMulti;

void setup() {

    USE_SERIAL.begin(115200);
   // USE_SERIAL.setDebugOutput(true);

    USE_SERIAL.println();
    USE_SERIAL.println();
    USE_SERIAL.println();

    for(uint8_t t = 4; t > 0; t--) {
        USE_SERIAL.printf("[SETUP] WAIT %d...\n", t);
        USE_SERIAL.flush();
        delay(1000);
    }

    WiFiMulti.addAP("SSID", "PASSWORD");

}

void loop() {
    // wait for WiFi connection
    if((WiFiMulti.run() == WL_CONNECTED)) {

        HTTPClient http;

        USE_SERIAL.print("[HTTP] begin...\n");
        // configure traged server and url
        //http.begin("192.168.1.12", 443, "/test.html", true, "7a 9c f4 db 40 d3 62 5a 6e 21 bc 5c cc 66 c8 3e a1 45 59 38"); //HTTPS
        //http.begin("192.168.1.12", 80, "/test.html"); //HTTP
        http.begin("http://api.coindesk.com/v1/bpi/currentprice.json");

        USE_SERIAL.print("[HTTP] GET...\n");
        // start connection and send HTTP header
        int httpCode = http.GET();
        if(httpCode) {
            // HTTP header has been send and Server response header has been handled
            USE_SERIAL.printf("[HTTP] GET... code: %d\n", httpCode);

            // file found at server
            if(httpCode == 200) {
                String payload = http.getString();
                USE_SERIAL.println(payload);
            }
        } else {
            USE_SERIAL.print("[HTTP] GET... failed, no connection or no HTTP server\n");
        }
    }

    delay(10000);
}


The only changes I made were: (1) Serial baud rate, (2) SSID and pw, (3) added sample URL with domain name.

Any suggestions?
Thanks!

Re: http.GET() returns -1

PostPosted: Mon Jan 25, 2016 10:34 am
by ExtraSensory
After a few resets, this seems to have resolved and I can now access the URL. :?