Wio 3G with Firebase example

Dependencies:   mbed-http

Fork of Wio_3G_HTTP-GET-example by Toyomasa Watarai

Committer:
MACRUM
Date:
Sun Aug 26 01:51:34 2018 +0000
Revision:
79:7cade4176d12
Parent:
78:7f66af24c678
Enabled Firebase config

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jonathan Austin 0:2757d7abb7d9 1 #include "mbed.h"
atomichan 76:fe9dd61c5f5c 2 #include "easy-connect.h"
atomichan 76:fe9dd61c5f5c 3 #include "https_request.h"
atomichan 76:fe9dd61c5f5c 4
MACRUM 79:7cade4176d12 5 Serial pc(USBTX, USBRX);
MACRUM 78:7f66af24c678 6
MACRUM 79:7cade4176d12 7 /* List of trusted root CA certificates
MACRUM 79:7cade4176d12 8 * This is the root CA for Google from GeoTrustGlobalCA
MACRUM 79:7cade4176d12 9 *
MACRUM 79:7cade4176d12 10 * To add more root certificates, just concatenate them.
MACRUM 79:7cade4176d12 11 */
MACRUM 79:7cade4176d12 12 const char SSL_CA_PEM[] = "-----BEGIN CERTIFICATE-----\n"
MACRUM 79:7cade4176d12 13 "MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G\n"
MACRUM 79:7cade4176d12 14 "A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp\n"
MACRUM 79:7cade4176d12 15 "Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1\n"
MACRUM 79:7cade4176d12 16 "MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG\n"
MACRUM 79:7cade4176d12 17 "A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI\n"
MACRUM 79:7cade4176d12 18 "hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL\n"
MACRUM 79:7cade4176d12 19 "v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8\n"
MACRUM 79:7cade4176d12 20 "eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq\n"
MACRUM 79:7cade4176d12 21 "tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd\n"
MACRUM 79:7cade4176d12 22 "C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa\n"
MACRUM 79:7cade4176d12 23 "zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB\n"
MACRUM 79:7cade4176d12 24 "mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH\n"
MACRUM 79:7cade4176d12 25 "V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n\n"
MACRUM 79:7cade4176d12 26 "bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG\n"
MACRUM 79:7cade4176d12 27 "3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs\n"
MACRUM 79:7cade4176d12 28 "J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO\n"
MACRUM 79:7cade4176d12 29 "291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS\n"
MACRUM 79:7cade4176d12 30 "ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd\n"
MACRUM 79:7cade4176d12 31 "AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7\n"
MACRUM 79:7cade4176d12 32 "TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==\n"
MACRUM 79:7cade4176d12 33 "-----END CERTIFICATE-----";
MACRUM 74:847e5dc7b4d5 34
MACRUM 79:7cade4176d12 35 void dump_response(HttpResponse* res) {
MACRUM 79:7cade4176d12 36 mbedtls_printf("Status: %d - %s\n", res->get_status_code(), res->get_status_message().c_str());
MACRUM 74:847e5dc7b4d5 37
MACRUM 79:7cade4176d12 38 mbedtls_printf("Headers:\n");
MACRUM 79:7cade4176d12 39 for (size_t ix = 0; ix < res->get_headers_length(); ix++) {
MACRUM 79:7cade4176d12 40 mbedtls_printf("\t%s: %s\n", res->get_headers_fields()[ix]->c_str(), res->get_headers_values()[ix]->c_str());
MACRUM 79:7cade4176d12 41 }
MACRUM 79:7cade4176d12 42 mbedtls_printf("\nBody (%d bytes):\n\n%s\n", res->get_body_length(), res->get_body_as_string().c_str());
MACRUM 70:cb6d36218441 43 }
Jonathan Austin 0:2757d7abb7d9 44
MACRUM 79:7cade4176d12 45 int main() {
MACRUM 79:7cade4176d12 46 pc.baud(115200);
MACRUM 78:7f66af24c678 47
MACRUM 79:7cade4176d12 48 NetworkInterface* network = easy_connect(true);
atomichan 76:fe9dd61c5f5c 49 if (!network) {
MACRUM 79:7cade4176d12 50 return 1;
atomichan 76:fe9dd61c5f5c 51 }
atomichan 76:fe9dd61c5f5c 52
MACRUM 79:7cade4176d12 53 // GET request to firebase.google.com
MACRUM 79:7cade4176d12 54 {
MACRUM 79:7cade4176d12 55 printf("\n----- HTTPS GET request -----\n");
MACRUM 78:7f66af24c678 56
MACRUM 79:7cade4176d12 57 HttpsRequest* get_req = new HttpsRequest(network, SSL_CA_PEM, HTTP_GET, "https://firebase.google.com/styles/docs.css");
MACRUM 79:7cade4176d12 58 get_req->set_debug(true);
MACRUM 78:7f66af24c678 59
MACRUM 79:7cade4176d12 60 HttpResponse* get_res = get_req->send();
MACRUM 79:7cade4176d12 61 if (!get_res) {
MACRUM 79:7cade4176d12 62 printf("HttpRequest failed (error code %d)\n", get_req->get_error());
MACRUM 79:7cade4176d12 63 return 1;
atomichan 76:fe9dd61c5f5c 64 }
MACRUM 79:7cade4176d12 65 printf("\n----- HTTPS GET response -----\n");
MACRUM 79:7cade4176d12 66 dump_response(get_res);
MACRUM 78:7f66af24c678 67
MACRUM 78:7f66af24c678 68 delete get_req;
atomichan 76:fe9dd61c5f5c 69 }
MACRUM 79:7cade4176d12 70
MACRUM 79:7cade4176d12 71 Thread::wait(osWaitForever);
Jonathan Austin 0:2757d7abb7d9 72 }
MACRUM 79:7cade4176d12 73