
modified to get more signal info
Dependencies: easy-connect mbed-http
Fork of http-example-wnc-modified by
Revision 5:42f713b19337, committed 2017-02-23
- Comitter:
- Jan Jongboom
- Date:
- Thu Feb 23 13:58:24 2017 +0100
- Parent:
- 4:27fd8efb5bab
- Child:
- 6:4a3ed1515bed
- Commit message:
- Rely on Content-Length, allocate body on the heap
Changed in this revision
--- a/mbed-http.lib Thu Feb 23 12:36:59 2017 +0100 +++ b/mbed-http.lib Thu Feb 23 13:58:24 2017 +0100 @@ -1,1 +1,1 @@ -https://developer.mbed.org/teams/sandbox/code/mbed-http/#959baaa89148 +https://developer.mbed.org/teams/sandbox/code/mbed-http/#2456c90f02e9
--- a/mbed_app.json Thu Feb 23 12:36:59 2017 +0100 +++ b/mbed_app.json Thu Feb 23 13:58:24 2017 +0100 @@ -33,7 +33,7 @@ "mbed-mesh-api.6lowpan-nd-channel-page": 0, "mbed-mesh-api.6lowpan-nd-channel": 12, "mbed-trace.enable": 0, - "mbed-http.http-buffer-size": 8192 + "mbed-http.http-buffer-size": 2048 }, "HEXIWEAR": { "esp8266-tx": "PTD3",
--- a/source/main-http.cpp Thu Feb 23 12:36:59 2017 +0100 +++ b/source/main-http.cpp Thu Feb 23 13:58:24 2017 +0100 @@ -15,7 +15,7 @@ for (size_t ix = 0; ix < res->get_headers_length(); ix++) { printf("\t%s: %s\n", res->get_headers_fields()[ix].c_str(), res->get_headers_values()[ix].c_str()); } - printf("\nBody:\n\n%s\n", res->get_body().c_str()); + printf("\nBody (%d bytes):\n\n%s\n", res->get_body_length(), res->get_body_as_string().c_str()); } int main() { @@ -28,38 +28,42 @@ } // Do a GET request to httpbin.org - HttpRequest get_req(network, HTTP_GET, "http://httpbin.org/status/418"); + { + HttpRequest* get_req = new HttpRequest(network, HTTP_GET, "http://httpbin.org/status/418"); - // By default the body is automatically parsed and stored in a string, this is memory heavy. - // To receive chunked response, pass in a callback as third parameter to 'send'. - HttpResponse* get_res = get_req.send(); - if (!get_res) { - printf("HttpRequest failed (error code %d)\n", get_req.get_error()); - return 1; + // By default the body is automatically parsed and stored in a string, this is memory heavy. + // To receive chunked response, pass in a callback as third parameter to 'send'. + HttpResponse* get_res = get_req->send(); + if (!get_res) { + printf("HttpRequest failed (error code %d)\n", get_req->get_error()); + return 1; + } + + printf("\n----- HTTP GET response -----\n"); + dump_response(get_res); + + delete get_req; } - printf("\n----- HTTP GET response -----\n"); - dump_response(get_res); - - delete get_res; - // POST request to httpbin.org - HttpRequest post_req(network, HTTP_POST, "http://httpbin.org/post"); - post_req.set_header("Content-Type", "application/json"); + { + HttpRequest* post_req = new HttpRequest(network, HTTP_POST, "http://httpbin.org/post"); + post_req->set_header("Content-Type", "application/json"); - const char body[] = "{\"hello\":\"world\"}"; + const char body[] = "{\"hello\":\"world\"}"; - HttpResponse* post_res = post_req.send(body, strlen(body)); - if (!post_res) { - printf("HttpRequest failed (error code %d)\n", post_req.get_error()); - return 1; + HttpResponse* post_res = post_req->send(body, strlen(body)); + if (!post_res) { + printf("HttpRequest failed (error code %d)\n", post_req->get_error()); + return 1; + } + + printf("\n----- HTTP POST response -----\n"); + dump_response(post_res); + + delete post_req; } - printf("\n----- HTTP POST response -----\n"); - dump_response(post_res); - - delete post_res; - Thread::wait(osWaitForever); }
--- a/source/main-https.cpp Thu Feb 23 12:36:59 2017 +0100 +++ b/source/main-https.cpp Thu Feb 23 13:58:24 2017 +0100 @@ -67,7 +67,7 @@ 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:\n\n%s\n", res->get_body().c_str()); + mbedtls_printf("\nBody (%d bytes):\n\n%s\n", res->get_body_length(), res->get_body_as_string().c_str()); } int main() { @@ -78,42 +78,46 @@ return 1; } - printf("\n----- HTTPS GET request -----\n"); + // GET request to developer.mbed.org + { + printf("\n----- HTTPS GET request -----\n"); - // @todo: when I declare this on the stack we hard fault (run out of memory??) - HttpsRequest* get_req = new HttpsRequest(network, SSL_CA_PEM, HTTP_GET, "https://developer.mbed.org/media/uploads/mbed_official/hello.txt"); - get_req->set_debug(true); + HttpsRequest* get_req = new HttpsRequest(network, SSL_CA_PEM, HTTP_GET, "https://developer.mbed.org/media/uploads/mbed_official/hello.txt"); + 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; + 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; } - printf("\n----- HTTPS GET response -----\n"); - dump_response(get_res); - - delete get_req; // POST request to httpbin.org - printf("\n----- HTTPS POST request -----\n"); + { + printf("\n----- HTTPS POST request -----\n"); - HttpsRequest* post_req = new HttpsRequest(network, SSL_CA_PEM, HTTP_POST, "https://httpbin.org/post"); - post_req->set_debug(true); - post_req->set_header("Content-Type", "application/json"); + HttpsRequest* post_req = new HttpsRequest(network, SSL_CA_PEM, HTTP_POST, "https://httpbin.org/post"); + post_req->set_debug(true); + post_req->set_header("Content-Type", "application/json"); - const char body[] = "{\"hello\":\"world\"}"; + const char body[] = "{\"hello\":\"world\"}"; - HttpResponse* post_res = post_req->send(body, strlen(body)); - if (!post_res) { - printf("HttpRequest failed (error code %d)\n", post_req->get_error()); - return 1; + HttpResponse* post_res = post_req->send(body, strlen(body)); + if (!post_res) { + printf("HttpRequest failed (error code %d)\n", post_req->get_error()); + return 1; + } + + printf("\n----- HTTPS POST response -----\n"); + dump_response(post_res); + + delete post_req; } - printf("\n----- HTTP POST response -----\n"); - dump_response(post_res); - - delete post_req; - Thread::wait(osWaitForever); }