Wio 3G with Firebase example
Fork of Wio_3G_HTTP-GET-example by
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 #include "easy-connect.h" 00003 #include "https_request.h" 00004 00005 Serial pc(USBTX, USBRX); 00006 00007 /* List of trusted root CA certificates 00008 * This is the root CA for Google from GeoTrustGlobalCA 00009 * 00010 * To add more root certificates, just concatenate them. 00011 */ 00012 const char SSL_CA_PEM[] = "-----BEGIN CERTIFICATE-----\n" 00013 "MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G\n" 00014 "A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp\n" 00015 "Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1\n" 00016 "MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG\n" 00017 "A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI\n" 00018 "hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL\n" 00019 "v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8\n" 00020 "eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq\n" 00021 "tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd\n" 00022 "C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa\n" 00023 "zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB\n" 00024 "mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH\n" 00025 "V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n\n" 00026 "bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG\n" 00027 "3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs\n" 00028 "J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO\n" 00029 "291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS\n" 00030 "ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd\n" 00031 "AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7\n" 00032 "TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==\n" 00033 "-----END CERTIFICATE-----"; 00034 00035 void dump_response(HttpResponse* res) { 00036 mbedtls_printf("Status: %d - %s\n", res->get_status_code(), res->get_status_message().c_str()); 00037 00038 mbedtls_printf("Headers:\n"); 00039 for (size_t ix = 0; ix < res->get_headers_length(); ix++) { 00040 mbedtls_printf("\t%s: %s\n", res->get_headers_fields()[ix]->c_str(), res->get_headers_values()[ix]->c_str()); 00041 } 00042 mbedtls_printf("\nBody (%d bytes):\n\n%s\n", res->get_body_length(), res->get_body_as_string().c_str()); 00043 } 00044 00045 int main() { 00046 pc.baud(115200); 00047 00048 NetworkInterface* network = easy_connect(true); 00049 if (!network) { 00050 return 1; 00051 } 00052 00053 // GET request to firebase.google.com 00054 { 00055 printf("\n----- HTTPS GET request -----\n"); 00056 00057 HttpsRequest* get_req = new HttpsRequest(network, SSL_CA_PEM, HTTP_GET, "https://firebase.google.com/styles/docs.css"); 00058 get_req->set_debug(true); 00059 00060 HttpResponse* get_res = get_req->send(); 00061 if (!get_res) { 00062 printf("HttpRequest failed (error code %d)\n", get_req->get_error()); 00063 return 1; 00064 } 00065 printf("\n----- HTTPS GET response -----\n"); 00066 dump_response(get_res); 00067 00068 delete get_req; 00069 } 00070 00071 Thread::wait(osWaitForever); 00072 } 00073
Generated on Wed Jul 13 2022 05:40:21 by
1.7.2
Toyomasa Watarai
