Last active
March 30, 2019 09:10
-
-
Save janjongboom/3db8a6dd00ee23b7ab73f3c0435de853 to your computer and use it in GitHub Desktop.
HTTPS request to firebase.google.com using https://developer.mbed.org/teams/sandbox/code/mbed-http/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "mbed.h" | |
#include "easy-connect.h" | |
#include "https_request.h" | |
Serial pc(USBTX, USBRX); | |
/* List of trusted root CA certificates | |
* This is the root CA for Google from GeoTrustGlobalCA | |
* | |
* To add more root certificates, just concatenate them. | |
*/ | |
const char SSL_CA_PEM[] = "-----BEGIN CERTIFICATE-----\n" | |
"MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT\n" | |
"MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i\n" | |
"YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG\n" | |
"EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg\n" | |
"R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9\n" | |
"9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq\n" | |
"fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv\n" | |
"iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU\n" | |
"1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+\n" | |
"bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW\n" | |
"MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA\n" | |
"ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l\n" | |
"uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn\n" | |
"Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS\n" | |
"tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF\n" | |
"PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un\n" | |
"hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV\n" | |
"5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==\n" | |
"-----END CERTIFICATE-----"; | |
void dump_response(HttpResponse* res) { | |
mbedtls_printf("Status: %d - %s\n", res->get_status_code(), res->get_status_message().c_str()); | |
mbedtls_printf("Headers:\n"); | |
for (size_t ix = 0; ix < res->get_headers_length(); ix++) { | |
mbedtls_printf("\t%s: %s\n", res->get_headers_fields()[ix]->c_str(), res->get_headers_values()[ix]->c_str()); | |
} | |
mbedtls_printf("\nBody (%d bytes):\n\n%s\n", res->get_body_length(), res->get_body_as_string().c_str()); | |
} | |
int main() { | |
pc.baud(115200); | |
NetworkInterface* network = easy_connect(true); | |
if (!network) { | |
return 1; | |
} | |
// GET request to firebase.google.com | |
{ | |
printf("\n----- HTTPS GET request -----\n"); | |
HttpsRequest* get_req = new HttpsRequest(network, SSL_CA_PEM, HTTP_GET, "https://firebase.google.com/styles/docs.css"); | |
get_req->set_debug(true); | |
HttpResponse* get_res = get_req->send(); | |
if (!get_res) { | |
printf("HttpRequest failed (error code %d)\n", get_req->get_error()); | |
return 1; | |
} | |
printf("\n----- HTTPS GET response -----\n"); | |
dump_response(get_res); | |
delete get_req; | |
} | |
Thread::wait(osWaitForever); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment