Simple Demo that gets a webpage
Dependencies: HTTPClient cc3000_hostdriver_mbedsocket mbed
Fork of EECS149_email_notifier by
main.cpp@4:b61a6b6190be, 2013-11-06 (annotated)
- Committer:
- Kojto
- Date:
- Wed Nov 06 17:25:54 2013 +0000
- Revision:
- 4:b61a6b6190be
- Parent:
- 3:ec0169cbc94d
- Child:
- 5:236e750e4202
- update to the host driver rev45; - the new EthernetInterface API used
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Kojto | 0:fe1445e57b7d | 1 | /* mbed Microcontroller Library |
Kojto | 0:fe1445e57b7d | 2 | * Copyright (c) 2006-2013 ARM Limited |
Kojto | 0:fe1445e57b7d | 3 | * |
Kojto | 0:fe1445e57b7d | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
Kojto | 0:fe1445e57b7d | 5 | * you may not use this file except in compliance with the License. |
Kojto | 0:fe1445e57b7d | 6 | * You may obtain a copy of the License at |
Kojto | 0:fe1445e57b7d | 7 | * |
Kojto | 0:fe1445e57b7d | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
Kojto | 0:fe1445e57b7d | 9 | * |
Kojto | 0:fe1445e57b7d | 10 | * Unless required by applicable law or agreed to in writing, software |
Kojto | 0:fe1445e57b7d | 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
Kojto | 0:fe1445e57b7d | 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
Kojto | 0:fe1445e57b7d | 13 | * See the License for the specific language governing permissions and |
Kojto | 0:fe1445e57b7d | 14 | * limitations under the License. |
Kojto | 0:fe1445e57b7d | 15 | */ |
Kojto | 0:fe1445e57b7d | 16 | #include "mbed.h" |
Kojto | 0:fe1445e57b7d | 17 | #include "cc3000.h" |
Kojto | 0:fe1445e57b7d | 18 | #include "main.h" |
Kojto | 0:fe1445e57b7d | 19 | |
Kojto | 0:fe1445e57b7d | 20 | #include "HTTPClient.h" |
Kojto | 0:fe1445e57b7d | 21 | |
Kojto | 0:fe1445e57b7d | 22 | using namespace mbed_cc3000; |
Kojto | 0:fe1445e57b7d | 23 | |
Kojto | 0:fe1445e57b7d | 24 | /* cc3000 module declaration specific for user's board. Check also init() */ |
Kojto | 0:fe1445e57b7d | 25 | #if (MY_BOARD == WIGO) |
Kojto | 4:b61a6b6190be | 26 | cc3000 wifi(PTA16, PTA13, PTD0, SPI(PTD2, PTD3, PTC5), "ssid", "key", WPA2, false); |
Kojto | 0:fe1445e57b7d | 27 | Serial pc(USBTX, USBRX); |
Kojto | 0:fe1445e57b7d | 28 | #elif (MY_BOARD == WIFI_DIPCORTEX) |
Kojto | 4:b61a6b6190be | 29 | cc3000 wifi(p28, p27, p30, SPI(p21, p14, p37), "ssid", "key", WPA2, false); |
Kojto | 0:fe1445e57b7d | 30 | Serial pc(UART_TX, UART_RX); |
Kojto | 4:b61a6b6190be | 31 | #elif (MY_BOARD == MBED_BOARD_EXAMPLE) |
Kojto | 4:b61a6b6190be | 32 | cc3000 wifi(p9, p10, p8, SPI(p5, p6, p7), "ssid", "key", WPA2, false); |
Kojto | 4:b61a6b6190be | 33 | Serial pc(USBTX, USBRX); |
Kojto | 0:fe1445e57b7d | 34 | #else |
Kojto | 0:fe1445e57b7d | 35 | |
Kojto | 0:fe1445e57b7d | 36 | #endif |
Kojto | 0:fe1445e57b7d | 37 | |
Kojto | 0:fe1445e57b7d | 38 | HTTPClient http; |
Kojto | 0:fe1445e57b7d | 39 | char str[512]; |
Kojto | 0:fe1445e57b7d | 40 | /** |
Kojto | 2:bc6c789cac58 | 41 | * \brief HTTP client demo |
Kojto | 0:fe1445e57b7d | 42 | * \param none |
Kojto | 0:fe1445e57b7d | 43 | * \return int |
Kojto | 0:fe1445e57b7d | 44 | */ |
Kojto | 0:fe1445e57b7d | 45 | int main() { |
Kojto | 0:fe1445e57b7d | 46 | init(); /* board dependent init */ |
Kojto | 0:fe1445e57b7d | 47 | pc.baud(115200); |
Kojto | 0:fe1445e57b7d | 48 | |
Kojto | 2:bc6c789cac58 | 49 | printf("cc3000 HTTP client demo. \r\n"); |
Kojto | 4:b61a6b6190be | 50 | wifi.init(); |
Kojto | 4:b61a6b6190be | 51 | if (wifi.connect() == -1) { |
Kojto | 4:b61a6b6190be | 52 | printf("Failed to connect. Please verify connection details and try again. \r\n"); |
Kojto | 4:b61a6b6190be | 53 | while(1); |
Kojto | 0:fe1445e57b7d | 54 | } else { |
Kojto | 4:b61a6b6190be | 55 | printf("IP address: %s \r\n",wifi.getIPAddress()); |
Kojto | 4:b61a6b6190be | 56 | printf("\r\ncc3000 connected to the Internet. Demo completed. \r\n"); |
Kojto | 0:fe1445e57b7d | 57 | } |
Kojto | 4:b61a6b6190be | 58 | |
Kojto | 0:fe1445e57b7d | 59 | //GET data |
Kojto | 1:58cd57bddd3a | 60 | printf("\r\nTrying to fetch page... \r\n"); |
Kojto | 0:fe1445e57b7d | 61 | int ret = http.get("http://mbed.org/media/uploads/donatien/hello.txt", str, 128); |
Kojto | 0:fe1445e57b7d | 62 | if (!ret) |
Kojto | 0:fe1445e57b7d | 63 | { |
Kojto | 1:58cd57bddd3a | 64 | printf("Page fetched successfully - read %d characters \r\n", strlen(str)); |
Kojto | 1:58cd57bddd3a | 65 | printf("Result: %s \r\n", str); |
Kojto | 0:fe1445e57b7d | 66 | } |
Kojto | 0:fe1445e57b7d | 67 | else |
Kojto | 0:fe1445e57b7d | 68 | { |
Kojto | 1:58cd57bddd3a | 69 | printf("Error - ret = %d - HTTP return code = %d \r\n", ret, http.getHTTPResponseCode()); |
Kojto | 0:fe1445e57b7d | 70 | } |
Kojto | 1:58cd57bddd3a | 71 | |
Kojto | 0:fe1445e57b7d | 72 | //POST data |
Kojto | 0:fe1445e57b7d | 73 | HTTPMap map; |
Kojto | 0:fe1445e57b7d | 74 | HTTPText inText(str, 512); |
Kojto | 0:fe1445e57b7d | 75 | map.put("Hello", "World"); |
Kojto | 0:fe1445e57b7d | 76 | map.put("test", "1234"); |
Kojto | 1:58cd57bddd3a | 77 | printf(" \r\nTrying to post data... \r\n"); |
Kojto | 0:fe1445e57b7d | 78 | ret = http.post("http://httpbin.org/post", map, &inText); |
Kojto | 0:fe1445e57b7d | 79 | if (!ret) |
Kojto | 0:fe1445e57b7d | 80 | { |
Kojto | 1:58cd57bddd3a | 81 | printf("Executed POST successfully - read %d characters \r\n", strlen(str)); |
Kojto | 1:58cd57bddd3a | 82 | printf("Result: %s \r\n", str); |
Kojto | 0:fe1445e57b7d | 83 | } |
Kojto | 0:fe1445e57b7d | 84 | else |
Kojto | 0:fe1445e57b7d | 85 | { |
Kojto | 1:58cd57bddd3a | 86 | printf("Error - ret = %d - HTTP return code = %d \r\n", ret, http.getHTTPResponseCode()); |
Kojto | 0:fe1445e57b7d | 87 | } |
Kojto | 1:58cd57bddd3a | 88 | |
Kojto | 0:fe1445e57b7d | 89 | //PUT data |
Kojto | 0:fe1445e57b7d | 90 | strcpy(str, "This is a PUT test!"); |
Kojto | 0:fe1445e57b7d | 91 | HTTPText outText(str); |
Kojto | 0:fe1445e57b7d | 92 | //HTTPText inText(str, 512); |
Kojto | 1:58cd57bddd3a | 93 | printf(" \r\nTrying to put resource... \r\n"); |
Kojto | 0:fe1445e57b7d | 94 | ret = http.put("http://httpbin.org/put", outText, &inText); |
Kojto | 0:fe1445e57b7d | 95 | if (!ret) |
Kojto | 0:fe1445e57b7d | 96 | { |
Kojto | 1:58cd57bddd3a | 97 | printf("Executed PUT successfully - read %d characters \r\n", strlen(str)); |
Kojto | 1:58cd57bddd3a | 98 | printf("Result: %s \r\n", str); |
Kojto | 0:fe1445e57b7d | 99 | } |
Kojto | 0:fe1445e57b7d | 100 | else |
Kojto | 0:fe1445e57b7d | 101 | { |
Kojto | 1:58cd57bddd3a | 102 | printf("Error - ret = %d - HTTP return code = %d \r\n", ret, http.getHTTPResponseCode()); |
Kojto | 0:fe1445e57b7d | 103 | } |
Kojto | 1:58cd57bddd3a | 104 | |
Kojto | 0:fe1445e57b7d | 105 | //DELETE data |
Kojto | 0:fe1445e57b7d | 106 | //HTTPText inText(str, 512); |
Kojto | 1:58cd57bddd3a | 107 | printf(" \r\nTrying to delete resource... \r\n"); |
Kojto | 0:fe1445e57b7d | 108 | ret = http.del("http://httpbin.org/delete", &inText); |
Kojto | 0:fe1445e57b7d | 109 | if (!ret) |
Kojto | 0:fe1445e57b7d | 110 | { |
Kojto | 1:58cd57bddd3a | 111 | printf("Executed DELETE successfully - read %d characters \r\n", strlen(str)); |
Kojto | 1:58cd57bddd3a | 112 | printf("Result: %s \r\n", str); |
Kojto | 0:fe1445e57b7d | 113 | } |
Kojto | 0:fe1445e57b7d | 114 | else |
Kojto | 0:fe1445e57b7d | 115 | { |
Kojto | 1:58cd57bddd3a | 116 | printf("Error - ret = %d - HTTP return code = %d \r\n", ret, http.getHTTPResponseCode()); |
Kojto | 0:fe1445e57b7d | 117 | } |
Kojto | 1:58cd57bddd3a | 118 | |
Kojto | 0:fe1445e57b7d | 119 | printf("Demo completed. \r\n"); |
Kojto | 2:bc6c789cac58 | 120 | wifi.disconnect(); |
Kojto | 0:fe1445e57b7d | 121 | } |