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 http-example by
main-http.cpp
00001 #include "select-demo.h" 00002 00003 #if DEMO == DEMO_HTTP 00004 00005 #include "mbed.h" 00006 #include "easy-connect.h" 00007 #include "http_request.h" 00008 00009 void dump_response(HttpResponse* res) { 00010 printf("Status: %d - %s\n", res->get_status_code(), res->get_status_message().c_str()); 00011 00012 printf("Headers:\n"); 00013 for (size_t ix = 0; ix < res->get_headers_length(); ix++) { 00014 printf("\t%s: %s\n", res->get_headers_fields()[ix]->c_str(), res->get_headers_values()[ix]->c_str()); 00015 } 00016 printf("\nBody (%d bytes):\n\n%s\n", res->get_body_length(), res->get_body_as_string().c_str()); 00017 } 00018 00019 int main() { 00020 // Connect to the network (see mbed_app.json for the connectivity method used) 00021 NetworkInterface* network = easy_connect(true); 00022 if (!network) { 00023 printf("Cannot connect to the network, see serial output"); 00024 return 1; 00025 } 00026 00027 // Do a GET request to httpbin.org 00028 { 00029 // By default the body is automatically parsed and stored in a buffer, this is memory heavy. 00030 // To receive chunked response, pass in a callback as last parameter to the constructor. 00031 HttpRequest* get_req = new HttpRequest(network, HTTP_GET, "http://httpbin.org/status/418"); 00032 00033 HttpResponse* get_res = get_req->send(); 00034 if (!get_res) { 00035 printf("HttpRequest failed (error code %d)\n", get_req->get_error()); 00036 return 1; 00037 } 00038 00039 printf("\n----- HTTP GET response -----\n"); 00040 dump_response(get_res); 00041 00042 delete get_req; 00043 } 00044 00045 // POST request to httpbin.org 00046 { 00047 HttpRequest* post_req = new HttpRequest(network, HTTP_POST, "http://httpbin.org/post"); 00048 post_req->set_header("Content-Type", "application/json"); 00049 00050 const char body[] = "{\"hello\":\"world\"}"; 00051 00052 HttpResponse* post_res = post_req->send(body, strlen(body)); 00053 if (!post_res) { 00054 printf("HttpRequest failed (error code %d)\n", post_req->get_error()); 00055 return 1; 00056 } 00057 00058 printf("\n----- HTTP POST response -----\n"); 00059 dump_response(post_res); 00060 00061 delete post_req; 00062 } 00063 00064 wait(osWaitForever); 00065 } 00066 00067 #endif
Generated on Fri Jul 15 2022 13:51:28 by
1.7.2
