Simple HTTP Client Example with HTTPClient class
Dependencies: HTTPClient mbed-rtos mbed-src
Diff: main.cpp
- Revision:
- 1:24d373f4f0ea
- Parent:
- 0:880477b153ac
- Child:
- 2:caac3459ca52
diff -r 880477b153ac -r 24d373f4f0ea main.cpp --- 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