HTTP Client with ESP8266 working example

Dependencies:   ESP8266Interface HTTPClient-SSL WebSocketClient mbed-rtos mbed

Fork of ESP8266_WebSockets_HelloWorld by ESP8266

This repository has been superceded

This project has moved to https://developer.mbed.org/teams/ESP8266/code/mbed-os-example-esp8266/

Introduction

This is a basic Hello World program for interfacing the ESP8266 chip with HTTP. It will execute a GET on httpbin.org/get, and a POST to httpbin.org/post.

ESP8266_HTTP_HelloWorld

  1. change ssid and passphrase to match your wifi connection
  2. Initialize ESP8266 with DHCP enabled
  3. Get mbed.org
    1. Print the information retrieved
  4. Post to httbin.org
    1. Print the information retrieved

You can view the information retrieved through a serial terminal set to 9600 baud.

Successful Execution

you should see something like the following on the terminal if the program successfully executes. /media/uploads/mbedAustin/httpclient.png

Revision:
14:1f0a842f8750
Parent:
13:5f2bb0dc134b
Child:
15:4b246689e0e2
diff -r 5f2bb0dc134b -r 1f0a842f8750 main.cpp
--- a/main.cpp	Wed Jun 03 19:03:50 2015 +0000
+++ b/main.cpp	Fri Jun 05 16:17:26 2015 +0000
@@ -1,45 +1,45 @@
 #include "mbed.h"
+#include "HTTPClient.h"
 #include "ESP8266Interface.h"
 #include "TCPSocketConnection.h"
 #include "TCPSocketServer.h"
 #include "Websocket.h"
 
-
-
-ESP8266Interface wifi(D1,D0,D10,"demossid","password",115200); // TX,RX,Reset,SSID,Password,Baud
+ESP8266Interface wifi(D1,D0,D2,"iotlab","42F67YxLX4AawRdcj",115200); // TX,RX,Reset,SSID,Password,Baud
 RawSerial pc(USBTX, USBRX); // tx, rx
- 
-int main() {
+HTTPClient http;
+char str[512];
+int main()
+{
     pc.baud(115200);
     wifi.init(); //Reset
     wifi.connect(); //Use DHCP
-    pc.printf("IP Address is %s\n", wifi.getIPAddress());
     
-    Websocket ws("ws://192.168.1.20:8888/ws");
-    
-    //Check for successful socket connection
-    if(!ws.connect())
-        ws.close();
-    else{
-        char str[100];
-        
-        for(int i=0; i<0x7fffffff; ++i) {
-            // string with a message
-            sprintf(str, "%d WebSocket Hello World over wifi", i);
-            ws.send(str);
-        
-            // clear the buffer and wait a sec...
-            memset(str, 0, 100);
-            wait(0.5f);
-        
-            // websocket server should echo whatever we sent it
-            if (ws.read(str)) {
-                pc.printf("rcv'd: %s\n", str);
-            }
-        }
+    //GET
+    pc.printf("\nTrying to fetch page...\n");
+    int ret = http.get("http://191.239.57.70/", str, 128);
+    if (!ret) {
+        pc.printf("Page fetched successfully - read %d characters\n", strlen(str));
+        pc.printf("Result: %s\n", str);
+    } else {
+        pc.printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode());
     }
-    ws.close();
-    
-    while(true) {}
+    //POST
+    HTTPMap map;
+    HTTPText inText(str, 512);
+    map.put("Hello", "World");
+    map.put("test", "1234");
+    printf("\nTrying to post data...\n");
+    ret = http.post("http://54.175.222.246/post", map, &inText);
+    if (!ret)
+    {
+      printf("Executed POST successfully - read %d characters\n", strlen(str));
+      printf("Result: %s\n", str);
+    }
+    else
+    {
+      printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode());
+    }
+
 }
- 
\ No newline at end of file
+