Get Twitter Timeline from Supertweet

Dependencies:   EthernetNetIf HTTPClientStreamingExample NetServices mbed

Fork of HTTPClientStreamingExample by Donatien Garnier

Committer:
nameless129
Date:
Mon Aug 19 12:11:40 2013 +0000
Revision:
4:8a9a71b740a7
Parent:
3:b69bca736df0
Get Twitter Timeline from Supertweet

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
nameless129 4:8a9a71b740a7 5 Serial pc(USBTX, USBRX); // tx, rx
donatien 0:c9e889dbdca5 6 EthernetNetIf eth;
donatien 0:c9e889dbdca5 7 HTTPClient http;
donatien 0:c9e889dbdca5 8
donatien 0:c9e889dbdca5 9 HTTPResult result;
donatien 0:c9e889dbdca5 10 bool completed = false;
donatien 0:c9e889dbdca5 11 void request_callback(HTTPResult r)
donatien 0:c9e889dbdca5 12 {
donatien 0:c9e889dbdca5 13 result = r;
donatien 0:c9e889dbdca5 14 completed = true;
donatien 0:c9e889dbdca5 15 }
donatien 0:c9e889dbdca5 16
donatien 0:c9e889dbdca5 17 int main() {
nameless129 4:8a9a71b740a7 18 pc.baud(921600);
donatien 0:c9e889dbdca5 19
nameless129 4:8a9a71b740a7 20 printf("Start\r\n");
donatien 0:c9e889dbdca5 21
nameless129 4:8a9a71b740a7 22 printf("Setting up...\r\n");
donatien 0:c9e889dbdca5 23 EthernetErr ethErr = eth.setup();
donatien 0:c9e889dbdca5 24 if(ethErr)
donatien 0:c9e889dbdca5 25 {
donatien 0:c9e889dbdca5 26 printf("Error %d in setup.\n", ethErr);
donatien 0:c9e889dbdca5 27 return -1;
donatien 0:c9e889dbdca5 28 }
nameless129 4:8a9a71b740a7 29 printf("Setup OK\r\n");
nameless129 4:8a9a71b740a7 30 http.basicAuth("username", "supertweet_password");
donatien 0:c9e889dbdca5 31 HTTPStream stream;
donatien 0:c9e889dbdca5 32
donatien 0:c9e889dbdca5 33 char BigBuf[512 + 1] = {0};
donatien 0:c9e889dbdca5 34 stream.readNext((byte*)BigBuf, 512); //Point to buffer for the first read
nameless129 4:8a9a71b740a7 35 HTTPResult r = http.get("http://api.supertweet.net/1.1/statuses/home_timeline.json", &stream, request_callback);
nameless129 4:8a9a71b740a7 36 //HTTPResult r = http.get("http://api.supertweet.net/1.1/statuses/mentions_timeline.json", &stream, request_callback);
nameless129 4:8a9a71b740a7 37
donatien 0:c9e889dbdca5 38 while(!completed)
donatien 0:c9e889dbdca5 39 {
donatien 0:c9e889dbdca5 40 Net::poll(); //Polls the Networking stack
donatien 0:c9e889dbdca5 41 if(stream.readable())
donatien 0:c9e889dbdca5 42 {
donatien 0:c9e889dbdca5 43 BigBuf[stream.readLen()] = 0; //Transform this buffer in a zero-terminated char* string
donatien 0:c9e889dbdca5 44 printf("%s",BigBuf); //Display it while loading
donatien 0:c9e889dbdca5 45 //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 46 stream.readNext((byte*)BigBuf, 512); //Buffer has been read, now we can put more data in it
donatien 0:c9e889dbdca5 47 }
donatien 0:c9e889dbdca5 48 }
donatien 0:c9e889dbdca5 49 printf("\n--------------\n");
donatien 0:c9e889dbdca5 50 if(result == HTTP_OK)
donatien 0:c9e889dbdca5 51 {
donatien 0:c9e889dbdca5 52 printf("Read completely\n");
donatien 0:c9e889dbdca5 53 }
donatien 0:c9e889dbdca5 54 else
donatien 0:c9e889dbdca5 55 {
donatien 0:c9e889dbdca5 56 printf("Error %d\n", result);
donatien 0:c9e889dbdca5 57 }
donatien 0:c9e889dbdca5 58
donatien 0:c9e889dbdca5 59 while(1)
donatien 0:c9e889dbdca5 60 {
donatien 0:c9e889dbdca5 61
donatien 0:c9e889dbdca5 62 }
donatien 0:c9e889dbdca5 63
donatien 0:c9e889dbdca5 64 return 0;
donatien 0:c9e889dbdca5 65
donatien 0:c9e889dbdca5 66 }