Toyomasa Watarai
/
Wio_3G_HTTP-GET-Firebase-example
Wio 3G with Firebase example
Fork of Wio_3G_HTTP-GET-example by
main.cpp@79:7cade4176d12, 2018-08-26 (annotated)
- 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?
User | Revision | Line number | New 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 |