simple http request (temperature data) from mbed lpc1768 with application board to thingsboard device/dashboard
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 Thu Jul 14 2022 21:03:17 by
1.7.2
