simple http request (temperature data) from mbed lpc1768 with application board to thingsboard device/dashboard
Fork of http-example by
main-http-socket-reuse.cpp
00001 #include "select-demo.h" 00002 00003 #if DEMO == DEMO_HTTP_SOCKET_REUSE 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 // Create a TCP socket 00028 printf("\n----- Setting up TCP connection -----\n"); 00029 00030 TCPSocket* socket = new TCPSocket(); 00031 nsapi_error_t open_result = socket->open(network); 00032 if (open_result != 0) { 00033 printf("Opening TCPSocket failed... %d\n", open_result); 00034 return 1; 00035 } 00036 00037 nsapi_error_t connect_result = socket->connect("httpbin.org", 80); 00038 if (connect_result != 0) { 00039 printf("Connecting over TCPSocket failed... %d\n", connect_result); 00040 return 1; 00041 } 00042 00043 printf("Connected over TCP to httpbin.org:80\n"); 00044 00045 // Do a GET request to httpbin.org 00046 { 00047 HttpRequest* get_req = new HttpRequest(socket, HTTP_GET, "http://httpbin.org/status/418"); 00048 00049 // By default the body is automatically parsed and stored in a string, this is memory heavy. 00050 // To receive chunked response, pass in a callback as third parameter to 'send'. 00051 HttpResponse* get_res = get_req->send(); 00052 if (!get_res) { 00053 printf("HttpRequest failed (error code %d)\n", get_req->get_error()); 00054 return 1; 00055 } 00056 00057 printf("\n----- HTTP GET response -----\n"); 00058 dump_response(get_res); 00059 00060 delete get_req; 00061 } 00062 00063 // POST request to httpbin.org 00064 { 00065 HttpRequest* post_req = new HttpRequest(socket, HTTP_POST, "http://httpbin.org/post"); 00066 post_req->set_header("Content-Type", "application/json"); 00067 00068 const char body[] = "{\"hello\":\"world\"}"; 00069 00070 HttpResponse* post_res = post_req->send(body, strlen(body)); 00071 if (!post_res) { 00072 printf("HttpRequest failed (error code %d)\n", post_req->get_error()); 00073 return 1; 00074 } 00075 00076 printf("\n----- HTTP POST response -----\n"); 00077 dump_response(post_res); 00078 00079 delete post_req; 00080 } 00081 00082 delete socket; 00083 00084 wait(osWaitForever); 00085 } 00086 00087 #endif
Generated on Thu Jul 14 2022 21:03:17 by
1.7.2
