a
Fork of http-example by
Embed:
(wiki syntax)
Show/hide line numbers
main-http-ipv6.cpp
00001 #include "select-demo.h" 00002 00003 #if DEMO == DEMO_HTTP_IPV6 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 icanhazip.com which returns the public IPv6 address for the device 00028 // This page is only accessible over IPv6 00029 { 00030 // By default the body is automatically parsed and stored in a buffer, this is memory heavy. 00031 // To receive chunked response, pass in a callback as last parameter to the constructor. 00032 HttpRequest* get_req = new HttpRequest(network, HTTP_GET, "http://ipv6.icanhazip.com"); 00033 00034 HttpResponse* get_res = get_req->send(); 00035 if (!get_res) { 00036 printf("HttpRequest failed (error code %d)\n", get_req->get_error()); 00037 return 1; 00038 } 00039 00040 printf("\n----- HTTP GET response -----\n"); 00041 dump_response(get_res); 00042 00043 delete get_req; 00044 } 00045 00046 wait(osWaitForever); 00047 } 00048 00049 #endif
Generated on Wed Jul 13 2022 20:30:07 by
1.7.2
