Example program demonstrating use of HTTP or HTTPS protocol over a cellular connection with httpbin.org using the MTSAS library. (Demonstrates GET,POST,basic-auth)

Dependencies:   mbed mtsas

Committer:
Vanger
Date:
Wed Mar 25 18:27:06 2015 +0000
Revision:
10:c2fb1d56f3d2
Parent:
9:794c538a84aa
Child:
11:47de28c1746b
mtsas updated

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Vanger 6:e5ea200c66c3 1 /** For an unsecure HTTP example, just build as is. But, to use the
Vanger 6:e5ea200c66c3 2 * HTTPS example, comment out the first main declaration and
Vanger 6:e5ea200c66c3 3 * uncomment the second main declaration at the end of this file.
Vanger 6:e5ea200c66c3 4 */
Vanger 6:e5ea200c66c3 5
Vanger 6:e5ea200c66c3 6 //Start of the HTTP code
Vanger 6:e5ea200c66c3 7 ///The example HTTP code sets up a connection to httpbin.org,
Vanger 6:e5ea200c66c3 8 ///sends a get request on the url: http://httpbin.org/get,
Vanger 6:e5ea200c66c3 9 ///then it sends a post request to the url: http://httpbin.org/post
Vanger 6:e5ea200c66c3 10 ///Please let us know if you have any questions/would like more examples.
Vanger 0:0be90fca1622 11 #include "mbed.h"
Vanger 0:0be90fca1622 12 #include "mtsas.h"
Vanger 10:c2fb1d56f3d2 13 #include "doTests.h"
Vanger 0:0be90fca1622 14
Vanger 0:0be90fca1622 15 int main(){
Vanger 0:0be90fca1622 16 //Modify to match your apn if you are using an HSPA radio with a SIM card
Vanger 2:e20a75d47720 17 const char APN[] = "";
Vanger 2:e20a75d47720 18
Vanger 3:85181c1324f2 19 //Sets the log level to INFO, higher log levels produce more log output.
Vanger 3:85181c1324f2 20 //Possible levels: NONE, FATAL, ERROR, WARNING, INFO, DEBUG, TRACE
Vanger 2:e20a75d47720 21 MTSLog::setLogLevel(MTSLog::INFO_LEVEL);
Vanger 0:0be90fca1622 22
Vanger 2:e20a75d47720 23 //Receive buffer
Vanger 2:e20a75d47720 24 char rbuf[4000];
Vanger 0:0be90fca1622 25
Vanger 2:e20a75d47720 26 //url strings for HTTP requests, httpbin.org is a public website for fielding test HTTP requests
Vanger 6:e5ea200c66c3 27 string url, base_url = "http://httpbin.org:80", url_get = "/get", url_post = "/post";
Vanger 0:0be90fca1622 28
Vanger 6:e5ea200c66c3 29 /// STMicro Nucelo F401RE
Vanger 6:e5ea200c66c3 30 /// The supported jumper configurations of the MTSAS do not line up with
Vanger 6:e5ea200c66c3 31 /// the pin mapping of the Nucleo F401RE. Therefore, the MTSAS serial TX
Vanger 6:e5ea200c66c3 32 /// pin (JP8 Pin 2) must be manually jumped to Serial1 RX (Shield pin D2)
Vanger 6:e5ea200c66c3 33 /// and the MTSAS serial RX pin (JP9 Pin 2) pin must be manually jumped to
Vanger 6:e5ea200c66c3 34 /// Serial1 TX (Shield pin D8).
Vanger 6:e5ea200c66c3 35 /// Uncomment the following line to use the STMicro Nuceleo F401RE
Vanger 0:0be90fca1622 36 MTSSerialFlowControl* io = new MTSSerialFlowControl(D8, D2, D3, D6);
Vanger 0:0be90fca1622 37
Vanger 6:e5ea200c66c3 38 /// Dragonfly
Vanger 6:e5ea200c66c3 39 /// To configure the serial pins for the Dragonfly board, use:
Vanger 6:e5ea200c66c3 40 /// RADIO_TX = pin PC_7, RADIO_RX = pin PC_6
Vanger 6:e5ea200c66c3 41 /// RADIO_RTS = pin PB_10,RADIO_CTS = pin PB_12
Vanger 9:794c538a84aa 42 /// Uncomment the following line to use the Dragonfly board
Vanger 5:931abf45fb92 43 //MTSSerialFlowControl* io = new MTSSerialFlowControl(PC_7, PC_6, PB_10, PB_12);
Vanger 5:931abf45fb92 44
Vanger 6:e5ea200c66c3 45 /// Freescale KL46Z
Vanger 6:e5ea200c66c3 46 /// To configure the serial pins for the Freescale KL46Z board, use MTSAS jumper
Vanger 6:e5ea200c66c3 47 /// configuration B. Uncomment the following line to use the Freescale KL46Z board
Vanger 0:0be90fca1622 48 //MTSSerialFlowControl* io = new MTSSerialFlowControl(D2, D9, D3, D6);
Vanger 0:0be90fca1622 49
Vanger 6:e5ea200c66c3 50 /// Freescale K64F
Vanger 6:e5ea200c66c3 51 /// To configure the serial pins for the Freescale K64F board, use MTSAS jumper
Vanger 6:e5ea200c66c3 52 /// configuration A. Uncomment the following line to use the Freescale K64F board
Vanger 0:0be90fca1622 53 //MTSSerialFlowControl* io = new MTSSerialFlowControl(D1, D0, D3, D6);
Vanger 0:0be90fca1622 54
Vanger 4:09d5f99b94b1 55 //Sets the baud rate for communicating with the radio
Vanger 0:0be90fca1622 56 io->baud(115200);
Vanger 0:0be90fca1622 57
Vanger 2:e20a75d47720 58 //Initialize radio configurations
Vanger 0:0be90fca1622 59 Cellular* radio = CellularFactory::create(io);
Vanger 2:e20a75d47720 60 if( ! radio) {
Vanger 2:e20a75d47720 61 logFatal("Radio initialization failed");
Vanger 3:85181c1324f2 62 return 1;
Vanger 2:e20a75d47720 63 }
Vanger 9:794c538a84aa 64
Vanger 2:e20a75d47720 65 Transport::setTransport(radio);
Vanger 2:e20a75d47720 66
Vanger 2:e20a75d47720 67 //Set up HTTP interface
Vanger 2:e20a75d47720 68 HTTPClient* http = new HTTPClient();
Vanger 3:85181c1324f2 69 HTTPText* receive = new HTTPText(rbuf, 4000);
Vanger 2:e20a75d47720 70
Vanger 3:85181c1324f2 71 //Set radio APN
Vanger 3:85181c1324f2 72 for (int i = 0; i < 10; i++) {
Vanger 3:85181c1324f2 73 if (i >= 10) {
Vanger 3:85181c1324f2 74 logError("Failed to set APN to %s", APN);
Vanger 3:85181c1324f2 75 }
Vanger 3:85181c1324f2 76 if (radio->setApn(APN) == MTS_SUCCESS) {
Vanger 3:85181c1324f2 77 logInfo("Successfully set APN to %s", APN);
Vanger 3:85181c1324f2 78 break;
Vanger 3:85181c1324f2 79 } else {
Vanger 3:85181c1324f2 80 wait(1);
Vanger 3:85181c1324f2 81 }
Vanger 3:85181c1324f2 82 }
Vanger 0:0be90fca1622 83
Vanger 0:0be90fca1622 84 //Establish PPP link
Vanger 3:85181c1324f2 85 for (int i = 0; i < 10; i++) {
Vanger 3:85181c1324f2 86 if (i >= 10) {
Vanger 3:85181c1324f2 87 logError("Failed to establish PPP link");
Vanger 3:85181c1324f2 88 }
Vanger 3:85181c1324f2 89 if (radio->connect() == true) {
Vanger 3:85181c1324f2 90 logInfo("Successfully established PPP link");
Vanger 3:85181c1324f2 91 break;
Vanger 3:85181c1324f2 92 } else {
Vanger 3:85181c1324f2 93 wait(1);
Vanger 3:85181c1324f2 94 }
Vanger 3:85181c1324f2 95 }
Vanger 0:0be90fca1622 96
Vanger 2:e20a75d47720 97 //Format HTTP Get request
Vanger 2:e20a75d47720 98 url = base_url + url_get;
Vanger 0:0be90fca1622 99
Vanger 2:e20a75d47720 100 //Send HTTP GET request
Vanger 2:e20a75d47720 101 for (int i = 0; i < 10; i++) {
Vanger 2:e20a75d47720 102 if(http->get(url.c_str(), receive, 5000) == HTTP_OK) {
Vanger 3:85181c1324f2 103 logInfo("HTTP get succeeded\n%s", rbuf);
Vanger 2:e20a75d47720 104 break;
Vanger 2:e20a75d47720 105 }
Vanger 2:e20a75d47720 106 if (i >= 10) {
Vanger 2:e20a75d47720 107 logError("HTTP GET failed");
Vanger 2:e20a75d47720 108 }
Vanger 2:e20a75d47720 109 wait(1);
Vanger 2:e20a75d47720 110 }
Vanger 0:0be90fca1622 111
Vanger 6:e5ea200c66c3 112 //Format HTTP POST request
Vanger 6:e5ea200c66c3 113 url = base_url + url_post;
Vanger 6:e5ea200c66c3 114
Vanger 6:e5ea200c66c3 115 //Create data to send
Vanger 6:e5ea200c66c3 116 char sbuf[60] = "Hello World! We are testing the MTSAS HTTP Example Program";
Vanger 6:e5ea200c66c3 117 HTTPText send = HTTPText(sbuf);
Vanger 6:e5ea200c66c3 118
Vanger 6:e5ea200c66c3 119 //Send HTTP POST request
Vanger 6:e5ea200c66c3 120 for (int i = 0; i < 10; i++) {
Vanger 6:e5ea200c66c3 121 if(http->post(url.c_str(), send, receive, 5000) == HTTP_OK) {
Vanger 6:e5ea200c66c3 122 logInfo("HTTP POST succeeded\n%s", rbuf);
Vanger 6:e5ea200c66c3 123 break;
Vanger 6:e5ea200c66c3 124 }
Vanger 6:e5ea200c66c3 125 if (i >= 10) {
Vanger 6:e5ea200c66c3 126 logError("HTTP POST failed");
Vanger 6:e5ea200c66c3 127 }
Vanger 6:e5ea200c66c3 128 wait(1);
Vanger 6:e5ea200c66c3 129 }
Vanger 6:e5ea200c66c3 130
Vanger 0:0be90fca1622 131 //Disconnect PPP link
Vanger 0:0be90fca1622 132 radio->disconnect();
Vanger 0:0be90fca1622 133
Vanger 2:e20a75d47720 134 logInfo("End of example code\n");
Vanger 0:0be90fca1622 135 return 0;
Vanger 6:e5ea200c66c3 136 }
Vanger 6:e5ea200c66c3 137 //End of the HTTP code
Vanger 6:e5ea200c66c3 138
Vanger 6:e5ea200c66c3 139
Vanger 6:e5ea200c66c3 140 //Start of the HTTPS code
Vanger 6:e5ea200c66c3 141 ///The example HTTPS code sets up a secure connection to httpbin.org,
Vanger 6:e5ea200c66c3 142 ///sends a get request on the url: https://httpbin.org/get,
Vanger 6:e5ea200c66c3 143 ///then it sends a post request to the url: https://httpbin.org/post
Vanger 6:e5ea200c66c3 144 ///and finally it demonstrates a basic authentication with a get request
Vanger 6:e5ea200c66c3 145 ///to the url: https://httpin.org/basic-auth/Bob/123
Vanger 6:e5ea200c66c3 146 ///Please let us know if you have any questions/would like more examples.
Vanger 6:e5ea200c66c3 147 /*
Vanger 6:e5ea200c66c3 148 #include "mbed.h"
Vanger 6:e5ea200c66c3 149 #include "mtsas.h"
Vanger 6:e5ea200c66c3 150 #include "certs.h"
Vanger 6:e5ea200c66c3 151
Vanger 6:e5ea200c66c3 152 //Function to convert http int results to string messages
Vanger 6:e5ea200c66c3 153 char * httpResToStr(HTTPResult res);
Vanger 6:e5ea200c66c3 154
Vanger 6:e5ea200c66c3 155 int main(){
Vanger 6:e5ea200c66c3 156
Vanger 6:e5ea200c66c3 157 //Modify to match your apn if you are using an HSPA radio with a SIM card
Vanger 6:e5ea200c66c3 158 const char APN[] = "";
Vanger 6:e5ea200c66c3 159
Vanger 6:e5ea200c66c3 160 //Sets the log level to INFO, higher log levels produce more log output.
Vanger 6:e5ea200c66c3 161 //Possible levels: NONE, FATAL, ERROR, WARNING, INFO, DEBUG, TRACE
Vanger 6:e5ea200c66c3 162 MTSLog::setLogLevel(MTSLog::INFO_LEVEL);
Vanger 6:e5ea200c66c3 163
Vanger 6:e5ea200c66c3 164 //Receive buffer
Vanger 6:e5ea200c66c3 165 char rbuf[4000];
Vanger 6:e5ea200c66c3 166
Vanger 6:e5ea200c66c3 167 //url strings for HTTPS requests, httpbin.org is a public website for fielding test HTTPS requests
Vanger 6:e5ea200c66c3 168 string url, secure_url = "https://httpbin.org:443", url_get = "/get", url_auth = "/basic-auth", url_post = "/post";
Vanger 6:e5ea200c66c3 169
Vanger 6:e5ea200c66c3 170 /// STMicro Nucelo F401RE
Vanger 6:e5ea200c66c3 171 /// The supported jumper configurations of the MTSAS do not line up with
Vanger 6:e5ea200c66c3 172 /// the pin mapping of the Nucleo F401RE. Therefore, the MTSAS serial TX
Vanger 6:e5ea200c66c3 173 /// pin (JP8 Pin 2) must be manually jumped to Serial1 RX (Shield pin D2)
Vanger 6:e5ea200c66c3 174 /// and the MTSAS serial RX pin (JP9 Pin 2) pin must be manually jumped to
Vanger 6:e5ea200c66c3 175 /// Serial1 TX (Shield pin D8).
Vanger 6:e5ea200c66c3 176 /// Uncomment the following line to use the STMicro Nuceleo F401RE
Vanger 6:e5ea200c66c3 177 MTSSerialFlowControl* io = new MTSSerialFlowControl(D8, D2, D3, D6);
Vanger 6:e5ea200c66c3 178
Vanger 6:e5ea200c66c3 179 /// Dragonfly
Vanger 6:e5ea200c66c3 180 /// To configure the serial pins for the Dragonfly board, use:
Vanger 6:e5ea200c66c3 181 /// RADIO_TX = pin PC_7, RADIO_RX = pin PC_6
Vanger 6:e5ea200c66c3 182 /// RADIO_RTS = pin PB_10,RADIO_CTS = pin PB_12
Vanger 6:e5ea200c66c3 183 /// Uncomment the following lines to use the Dragonfly board
Vanger 6:e5ea200c66c3 184 //MTSSerialFlowControl* io = new MTSSerialFlowControl(PC_7, PC_6, PB_10, PB_12);
Vanger 6:e5ea200c66c3 185
Vanger 6:e5ea200c66c3 186 /// Freescale KL46Z
Vanger 6:e5ea200c66c3 187 /// To configure the serial pins for the Freescale KL46Z board, use MTSAS jumper
Vanger 6:e5ea200c66c3 188 /// configuration B. Uncomment the following line to use the Freescale KL46Z board
Vanger 6:e5ea200c66c3 189 //MTSSerialFlowControl* io = new MTSSerialFlowControl(D2, D9, D3, D6);
Vanger 6:e5ea200c66c3 190
Vanger 6:e5ea200c66c3 191 /// Freescale K64F
Vanger 6:e5ea200c66c3 192 /// To configure the serial pins for the Freescale K64F board, use MTSAS jumper
Vanger 6:e5ea200c66c3 193 /// configuration A. Uncomment the following line to use the Freescale K64F board
Vanger 6:e5ea200c66c3 194 //MTSSerialFlowControl* io = new MTSSerialFlowControl(D1, D0, D3, D6);
Vanger 6:e5ea200c66c3 195
Vanger 6:e5ea200c66c3 196 //Sets the baud rate for communicating with the radio
Vanger 6:e5ea200c66c3 197 io->baud(115200);
Vanger 6:e5ea200c66c3 198
Vanger 6:e5ea200c66c3 199 MTSLog::setLogLevel(MTSLog::TRACE_LEVEL);
Vanger 6:e5ea200c66c3 200
Vanger 6:e5ea200c66c3 201 //Initialize radio configurations
Vanger 6:e5ea200c66c3 202 Cellular* radio = CellularFactory::create(io);
Vanger 6:e5ea200c66c3 203 if( ! radio) {
Vanger 6:e5ea200c66c3 204 logFatal("Radio initialization failed");
Vanger 6:e5ea200c66c3 205 return 1;
Vanger 6:e5ea200c66c3 206 }
Vanger 6:e5ea200c66c3 207
Vanger 6:e5ea200c66c3 208 radio->configureSignals(D4,D7,RESET);
Vanger 6:e5ea200c66c3 209 Transport::setTransport(radio);
Vanger 6:e5ea200c66c3 210
Vanger 6:e5ea200c66c3 211 //Set radio APN
Vanger 6:e5ea200c66c3 212 for (int i = 0; i < 10; i++) {
Vanger 6:e5ea200c66c3 213 if (i >= 10) {
Vanger 6:e5ea200c66c3 214 logFatal("Failed to set APN to %s", APN);
Vanger 6:e5ea200c66c3 215 return 1;
Vanger 6:e5ea200c66c3 216 }
Vanger 6:e5ea200c66c3 217 if (radio->setApn(APN) == MTS_SUCCESS) {
Vanger 6:e5ea200c66c3 218 logInfo("Successfully set APN to %s", APN);
Vanger 6:e5ea200c66c3 219 break;
Vanger 6:e5ea200c66c3 220 } else {
Vanger 6:e5ea200c66c3 221 wait(1);
Vanger 6:e5ea200c66c3 222 }
Vanger 6:e5ea200c66c3 223 }
Vanger 6:e5ea200c66c3 224
Vanger 6:e5ea200c66c3 225 //Establish PPP link
Vanger 6:e5ea200c66c3 226 for (int i = 0; i < 10; i++) {
Vanger 6:e5ea200c66c3 227 if (i >= 10) {
Vanger 6:e5ea200c66c3 228 logError("Failed to establish PPP link");
Vanger 6:e5ea200c66c3 229 }
Vanger 6:e5ea200c66c3 230 if (radio->connect() == true) {
Vanger 6:e5ea200c66c3 231 logInfo("Successfully established PPP link");
Vanger 6:e5ea200c66c3 232 break;
Vanger 6:e5ea200c66c3 233 } else {
Vanger 6:e5ea200c66c3 234 wait(1);
Vanger 6:e5ea200c66c3 235 }
Vanger 6:e5ea200c66c3 236 }
Vanger 6:e5ea200c66c3 237
Vanger 6:e5ea200c66c3 238 //Set up HTTP interface
Vanger 6:e5ea200c66c3 239 HTTPClient* http = new HTTPClient();
Vanger 6:e5ea200c66c3 240 HTTPText* receive = new HTTPText(rbuf, 5000);
Vanger 6:e5ea200c66c3 241 HTTPResult res;
Vanger 6:e5ea200c66c3 242
Vanger 6:e5ea200c66c3 243 //Adds the root certificates for accepted websites to verify that
Vanger 6:e5ea200c66c3 244 //the remote host is who it says it is.
Vanger 6:e5ea200c66c3 245 //Instructions on obtaining the root certificate is included in certs.h
Vanger 6:e5ea200c66c3 246 //(Basically, only load certificates of trusted websites)
Vanger 6:e5ea200c66c3 247 //Certificates should be written in PEM format, starts with
Vanger 6:e5ea200c66c3 248 //-----BEGIN CERTIFICATE----- and ends with -----END CERTIFICATE-----
Vanger 6:e5ea200c66c3 249 //Each line in between must be less than 64 or less characters in length,
Vanger 6:e5ea200c66c3 250 //and each line in the certificate must end with /r/n, ex:
Vanger 6:e5ea200c66c3 251 //-----BEGIN CERTIFICATE-----\r\n
Vanger 6:e5ea200c66c3 252 //923JNF0A7H43HA3F90JA3JMFGNM9A...\r\n
Vanger 6:e5ea200c66c3 253 //9823HJ9F8HA8GF283H9A8JF901239...\r\n
Vanger 6:e5ea200c66c3 254 //239F8A93HUF898AYU230FUA0239UF...\r\n
Vanger 6:e5ea200c66c3 255 //98HAW9EFH98H9WE8\r\n
Vanger 6:e5ea200c66c3 256 //-----END CERTIFICATE-----\r\n
Vanger 6:e5ea200c66c3 257 res = http->addRootCACertificate(CERTIFICATES);
Vanger 6:e5ea200c66c3 258 if(res != HTTP_OK) {
Vanger 6:e5ea200c66c3 259 logError("Failed to load CERTIFICATES");
Vanger 6:e5ea200c66c3 260 }
Vanger 6:e5ea200c66c3 261
Vanger 6:e5ea200c66c3 262 //Call with argument VERIFY_PEER to turn on SSL security (HTTPS)
Vanger 6:e5ea200c66c3 263 //Default argument is VERIFY_NONE which operates as without SSL security (HTTP)
Vanger 6:e5ea200c66c3 264 http->setPeerVerification(VERIFY_PEER);
Vanger 6:e5ea200c66c3 265
Vanger 6:e5ea200c66c3 266 //Format HTTPS GET request
Vanger 6:e5ea200c66c3 267 url = secure_url + url_get;
Vanger 6:e5ea200c66c3 268
Vanger 6:e5ea200c66c3 269 //Send HTTPS GET request
Vanger 6:e5ea200c66c3 270 for (int i = 0; i < 10; i++) {
Vanger 6:e5ea200c66c3 271 if(http->get(url.c_str(), receive, 5000) == HTTP_OK) {
Vanger 6:e5ea200c66c3 272 logInfo("HTTPS GET succeeded\n%s", rbuf);
Vanger 6:e5ea200c66c3 273 break;
Vanger 6:e5ea200c66c3 274 }
Vanger 6:e5ea200c66c3 275 if (i >= 10) {
Vanger 6:e5ea200c66c3 276 logError("HTTPS GET failed");
Vanger 6:e5ea200c66c3 277 }
Vanger 6:e5ea200c66c3 278 wait(1);
Vanger 6:e5ea200c66c3 279 }
Vanger 6:e5ea200c66c3 280
Vanger 6:e5ea200c66c3 281 //Format HTTPS POST request
Vanger 6:e5ea200c66c3 282 url = secure_url + url_post;
Vanger 6:e5ea200c66c3 283
Vanger 6:e5ea200c66c3 284 //Create data to send
Vanger 6:e5ea200c66c3 285 char sbuf[60] = "Hello World! We are testing the MTSAS HTTPS Example Program";
Vanger 6:e5ea200c66c3 286 HTTPText send = HTTPText(sbuf);
Vanger 6:e5ea200c66c3 287
Vanger 6:e5ea200c66c3 288 //Send HTTPS POST request
Vanger 6:e5ea200c66c3 289 for (int i = 0; i < 10; i++) {
Vanger 6:e5ea200c66c3 290 if(http->post(url.c_str(), send, receive, 5000) == HTTP_OK) {
Vanger 6:e5ea200c66c3 291 logInfo("HTTPS POST succeeded\n%s", rbuf);
Vanger 6:e5ea200c66c3 292 break;
Vanger 6:e5ea200c66c3 293 }
Vanger 6:e5ea200c66c3 294 if (i >= 10) {
Vanger 6:e5ea200c66c3 295 logError("HTTPS POST failed");
Vanger 6:e5ea200c66c3 296 }
Vanger 6:e5ea200c66c3 297 wait(1);
Vanger 6:e5ea200c66c3 298 }
Vanger 6:e5ea200c66c3 299
Vanger 6:e5ea200c66c3 300 //Basic authentication test values, can be modified
Vanger 6:e5ea200c66c3 301 //to any test username and password. Format for url_usr_pw: /<user>/<password>
Vanger 6:e5ea200c66c3 302 string url_usr_pw = "/Bob/123";
Vanger 6:e5ea200c66c3 303 const char user[] = "Bob",pw[] = "123";
Vanger 6:e5ea200c66c3 304
Vanger 6:e5ea200c66c3 305 //Format HTTPS basic authentication GET request
Vanger 6:e5ea200c66c3 306 url = secure_url + url_auth + url_usr_pw;
Vanger 6:e5ea200c66c3 307
Vanger 6:e5ea200c66c3 308 res = http->basicAuth(user,pw);
Vanger 6:e5ea200c66c3 309 logTrace("Set username and password?: %s",httpResToStr(res));
Vanger 6:e5ea200c66c3 310
Vanger 6:e5ea200c66c3 311 res = http->get(url.c_str(), receive);
Vanger 6:e5ea200c66c3 312 if(res == HTTP_OK) {
Vanger 6:e5ea200c66c3 313 logInfo("HTTPS Authenticated GET succeeded [%s]", rbuf);
Vanger 6:e5ea200c66c3 314 } else {
Vanger 6:e5ea200c66c3 315 logInfo("HTTPS Authenticated GET failed [%s]", httpResToStr(res));
Vanger 6:e5ea200c66c3 316 }
Vanger 6:e5ea200c66c3 317
Vanger 6:e5ea200c66c3 318 res = http->basicAuth(NULL,NULL);
Vanger 6:e5ea200c66c3 319 logTrace("Reset username and password?: %s",httpResToStr(res));
Vanger 6:e5ea200c66c3 320
Vanger 6:e5ea200c66c3 321 return 0;
Vanger 6:e5ea200c66c3 322 }
Vanger 6:e5ea200c66c3 323
Vanger 6:e5ea200c66c3 324 char * httpResToStr(HTTPResult res) {
Vanger 6:e5ea200c66c3 325 switch(res) {
Vanger 6:e5ea200c66c3 326 case HTTP_PROCESSING:
Vanger 6:e5ea200c66c3 327 return "HTTP_PROCESSING";
Vanger 6:e5ea200c66c3 328 case HTTP_PARSE:
Vanger 6:e5ea200c66c3 329 return "HTTP_PARSE";
Vanger 6:e5ea200c66c3 330 case HTTP_DNS:
Vanger 6:e5ea200c66c3 331 return "HTTP_DNS";
Vanger 6:e5ea200c66c3 332 case HTTP_PRTCL:
Vanger 6:e5ea200c66c3 333 return "HTTP_PRTCL";
Vanger 6:e5ea200c66c3 334 case HTTP_NOTFOUND:
Vanger 6:e5ea200c66c3 335 return "HTTP_NOTFOUND";
Vanger 6:e5ea200c66c3 336 case HTTP_REFUSED:
Vanger 6:e5ea200c66c3 337 return "HTTP_REFUSED";
Vanger 6:e5ea200c66c3 338 case HTTP_ERROR:
Vanger 6:e5ea200c66c3 339 return "HTTP_ERROR";
Vanger 6:e5ea200c66c3 340 case HTTP_TIMEOUT:
Vanger 6:e5ea200c66c3 341 return "HTTP_TIMEOUT";
Vanger 6:e5ea200c66c3 342 case HTTP_CONN:
Vanger 6:e5ea200c66c3 343 return "HTTP_CONN";
Vanger 6:e5ea200c66c3 344 case HTTP_CLOSED:
Vanger 6:e5ea200c66c3 345 return "HTTP_CLOSED";
Vanger 6:e5ea200c66c3 346 case HTTP_REDIRECT:
Vanger 6:e5ea200c66c3 347 return "HTTP_REDIRECT";
Vanger 6:e5ea200c66c3 348 case HTTP_OK:
Vanger 6:e5ea200c66c3 349 return "HTTP_OK";
Vanger 6:e5ea200c66c3 350 default:
Vanger 6:e5ea200c66c3 351 return "HTTP Result unknown";
Vanger 6:e5ea200c66c3 352 }
Vanger 6:e5ea200c66c3 353 }
Vanger 6:e5ea200c66c3 354 //End of the HTTPS code
Vanger 6:e5ea200c66c3 355 */