Dependencies:   EthernetNetIf mbed

Dependents:   SuperTweet_get

Committer:
donatien
Date:
Fri Jul 09 14:45:12 2010 +0000
Revision:
3:b69bca736df0
Parent:
1:e6e8b074e675

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 0:c9e889dbdca5 1 #include "mbed.h"
donatien 0:c9e889dbdca5 2 #include "EthernetNetIf.h"
donatien 0:c9e889dbdca5 3 #include "HTTPClient.h"
donatien 0:c9e889dbdca5 4
donatien 0:c9e889dbdca5 5 EthernetNetIf eth;
donatien 0:c9e889dbdca5 6 HTTPClient http;
donatien 0:c9e889dbdca5 7
donatien 0:c9e889dbdca5 8 HTTPResult result;
donatien 0:c9e889dbdca5 9 bool completed = false;
donatien 0:c9e889dbdca5 10 void request_callback(HTTPResult r)
donatien 0:c9e889dbdca5 11 {
donatien 0:c9e889dbdca5 12 result = r;
donatien 0:c9e889dbdca5 13 completed = true;
donatien 0:c9e889dbdca5 14 }
donatien 0:c9e889dbdca5 15
donatien 0:c9e889dbdca5 16 int main() {
donatien 0:c9e889dbdca5 17
donatien 0:c9e889dbdca5 18 printf("Start\n");
donatien 0:c9e889dbdca5 19
donatien 0:c9e889dbdca5 20 printf("Setting up...\n");
donatien 0:c9e889dbdca5 21 EthernetErr ethErr = eth.setup();
donatien 0:c9e889dbdca5 22 if(ethErr)
donatien 0:c9e889dbdca5 23 {
donatien 0:c9e889dbdca5 24 printf("Error %d in setup.\n", ethErr);
donatien 0:c9e889dbdca5 25 return -1;
donatien 0:c9e889dbdca5 26 }
donatien 0:c9e889dbdca5 27 printf("Setup OK\n");
donatien 0:c9e889dbdca5 28
donatien 0:c9e889dbdca5 29 HTTPStream stream;
donatien 0:c9e889dbdca5 30
donatien 0:c9e889dbdca5 31 char BigBuf[512 + 1] = {0};
donatien 0:c9e889dbdca5 32 stream.readNext((byte*)BigBuf, 512); //Point to buffer for the first read
donatien 1:e6e8b074e675 33 //HTTPResult r = http.get("http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/front_page/rss.xml", &stream, request_callback); //Load a very large page, such as the hackaday RSS feed
donatien 3:b69bca736df0 34 //HTTPResult r = http.get("http://hackaday.com/feed/", &stream, request_callback); //Load a very large page, such as the hackaday RSS feed
donatien 3:b69bca736df0 35 HTTPResult r = http.get("http://mbed.org/blog/feeds/entries/", &stream, request_callback); //Load a very large page
donatien 0:c9e889dbdca5 36
donatien 0:c9e889dbdca5 37 while(!completed)
donatien 0:c9e889dbdca5 38 {
donatien 0:c9e889dbdca5 39 Net::poll(); //Polls the Networking stack
donatien 0:c9e889dbdca5 40 if(stream.readable())
donatien 0:c9e889dbdca5 41 {
donatien 0:c9e889dbdca5 42 BigBuf[stream.readLen()] = 0; //Transform this buffer in a zero-terminated char* string
donatien 0:c9e889dbdca5 43 printf("%s",BigBuf); //Display it while loading
donatien 0:c9e889dbdca5 44 //Note: some servers do not like if you throttle them too much, so printf'ing during a request is generally bad practice
donatien 0:c9e889dbdca5 45 stream.readNext((byte*)BigBuf, 512); //Buffer has been read, now we can put more data in it
donatien 0:c9e889dbdca5 46 }
donatien 0:c9e889dbdca5 47 }
donatien 0:c9e889dbdca5 48 printf("\n--------------\n");
donatien 0:c9e889dbdca5 49 if(result == HTTP_OK)
donatien 0:c9e889dbdca5 50 {
donatien 0:c9e889dbdca5 51 printf("Read completely\n");
donatien 0:c9e889dbdca5 52 }
donatien 0:c9e889dbdca5 53 else
donatien 0:c9e889dbdca5 54 {
donatien 0:c9e889dbdca5 55 printf("Error %d\n", result);
donatien 0:c9e889dbdca5 56 }
donatien 0:c9e889dbdca5 57
donatien 0:c9e889dbdca5 58 while(1)
donatien 0:c9e889dbdca5 59 {
donatien 0:c9e889dbdca5 60
donatien 0:c9e889dbdca5 61 }
donatien 0:c9e889dbdca5 62
donatien 0:c9e889dbdca5 63 return 0;
donatien 0:c9e889dbdca5 64
donatien 0:c9e889dbdca5 65 }