Get Twitter Timeline from Supertweet

Dependencies:   EthernetNetIf HTTPClientStreamingExample NetServices mbed

Fork of HTTPClientStreamingExample by Donatien Garnier

Committer:
donatien
Date:
Mon Jun 14 13:36:01 2010 +0000
Revision:
0:c9e889dbdca5
Child:
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 0:c9e889dbdca5 33
donatien 0:c9e889dbdca5 34 HTTPResult r = http.get("HTTP://hackaday.com/feed/", &stream, request_callback); //Load a very large page, such as the hackaday RSS feed
donatien 0:c9e889dbdca5 35
donatien 0:c9e889dbdca5 36 while(!completed)
donatien 0:c9e889dbdca5 37 {
donatien 0:c9e889dbdca5 38 Net::poll(); //Polls the Networking stack
donatien 0:c9e889dbdca5 39 if(stream.readable())
donatien 0:c9e889dbdca5 40 {
donatien 0:c9e889dbdca5 41 BigBuf[stream.readLen()] = 0; //Transform this buffer in a zero-terminated char* string
donatien 0:c9e889dbdca5 42 printf("%s",BigBuf); //Display it while loading
donatien 0:c9e889dbdca5 43 //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 44 stream.readNext((byte*)BigBuf, 512); //Buffer has been read, now we can put more data in it
donatien 0:c9e889dbdca5 45 }
donatien 0:c9e889dbdca5 46 }
donatien 0:c9e889dbdca5 47 printf("\n--------------\n");
donatien 0:c9e889dbdca5 48 if(result == HTTP_OK)
donatien 0:c9e889dbdca5 49 {
donatien 0:c9e889dbdca5 50 printf("Read completely\n");
donatien 0:c9e889dbdca5 51 }
donatien 0:c9e889dbdca5 52 else
donatien 0:c9e889dbdca5 53 {
donatien 0:c9e889dbdca5 54 printf("Error %d\n", result);
donatien 0:c9e889dbdca5 55 }
donatien 0:c9e889dbdca5 56
donatien 0:c9e889dbdca5 57 while(1)
donatien 0:c9e889dbdca5 58 {
donatien 0:c9e889dbdca5 59
donatien 0:c9e889dbdca5 60 }
donatien 0:c9e889dbdca5 61
donatien 0:c9e889dbdca5 62 return 0;
donatien 0:c9e889dbdca5 63
donatien 0:c9e889dbdca5 64 }