Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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 |
