Simple HTTP Client Example with HTTPClient class

Dependencies:   HTTPClient mbed-rtos mbed-src

Revision:
1:24d373f4f0ea
Parent:
0:880477b153ac
Child:
2:caac3459ca52
--- a/main.cpp	Sat Nov 29 13:25:45 2014 +0000
+++ b/main.cpp	Mon Dec 01 01:10:41 2014 +0000
@@ -1,40 +1,48 @@
 #include "mbed.h"
 #include "EthernetInterface.h"
+#include "HTTPClient.h"
 
-int main() {
-    char send_buff[] = "GET / abcd\r\n\r\n" ;
-    #define RECV_BUFF 1024
-    char recv_buff[RECV_BUFF];
-    #define SERVER_IP "192.168.1.12"
-    int port = 80;
-    int n ;
- 
-    printf("TCPCllient waiting for server IP and port...\r\n");
- 
-    EthernetInterface eth;
-    eth.init() ;
-    eth.connect();
- 
-    printf("TCPClient IP Address is %s\r\n", eth.getIPAddress());
-    TCPSocketConnection socket;
-    while (socket.connect(SERVER_IP, port) < 0) {
-        printf("TCPCllient unable to connect to %s:%d\r\n", SERVER_IP, port);
-        wait(1.0);
-    }
-    if (socket.send(send_buff, sizeof(send_buff)-1) != (sizeof(send_buff)-1)){
-        printf("Socket.send failed\n");
-        return ;
+#define HOST "192.168.1.12"
+
+EthernetInterface eth;
+HTTPClient http;
+char str[1024*20];
+  
+void main_body(void const *av) {
+    char url[100] ;
+    int ret ;
+    //GET data
+
+    printf("\nTrying to fetch page...\n");
+    sprintf(url, "http://%s/", HOST) ;
+    printf("url=%s\n",url) ;
+    ret = http.get(url, str, sizeof(str)-1,16);
+    if (!ret) {
+        printf("Page fetched 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());
     }
 
-    puts("Server Response:\n") ;
-    do {
-        n = socket.receive(recv_buff, sizeof(recv_buff)-1);
-        if (n >= 0) {
-            recv_buff[n] = 0;
-            printf("%s", recv_buff);
-        } else return ;
-    } while(n > 0) ;
-    socket.close();
-    eth.disconnect();
-    return 0;
+}
+
+int main()
+{
+    int ret ;
+    void *av ;
+    printf("HTTP Client Starting,...\n") ;
+    ret = eth.init(); //Use DHCP
+    while(1) {
+        ret = eth.connect();
+        if(ret == 0)break ;
+    }
+    printf("IP = %s\n", eth.getIPAddress());
+    
+    #define STACK_SIZE 20000
+    //Thread t(main_body, NULL, osPriorityNormal, STACK_SIZE);
+    main_body(av) ;
+    eth.disconnect();  
+    while(1) {
+    }
+
 }
\ No newline at end of file