Get Twitter Timeline from Supertweet
Dependencies: EthernetNetIf HTTPClientStreamingExample NetServices mbed
Fork of HTTPClientStreamingExample by
HTTPClientStreamingExample.cpp@4:8a9a71b740a7, 2013-08-19 (annotated)
- 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?
User | Revision | Line number | New 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 | } |