wifi test

Dependencies:   X_NUCLEO_IKS01A2 mbed-http

Committer:
JMF
Date:
Wed Sep 05 14:28:24 2018 +0000
Revision:
0:24d3eb812fd4
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JMF 0:24d3eb812fd4 1 #include "select-demo.h"
JMF 0:24d3eb812fd4 2
JMF 0:24d3eb812fd4 3 #if DEMO == DEMO_HTTP
JMF 0:24d3eb812fd4 4
JMF 0:24d3eb812fd4 5 #include "mbed.h"
JMF 0:24d3eb812fd4 6 #include "easy-connect.h"
JMF 0:24d3eb812fd4 7 #include "http_request.h"
JMF 0:24d3eb812fd4 8
JMF 0:24d3eb812fd4 9 Serial pc(USBTX, USBRX);
JMF 0:24d3eb812fd4 10
JMF 0:24d3eb812fd4 11 void dump_response(HttpResponse* res) {
JMF 0:24d3eb812fd4 12 printf("Status: %d - %s\n", res->get_status_code(), res->get_status_message().c_str());
JMF 0:24d3eb812fd4 13
JMF 0:24d3eb812fd4 14 printf("Headers:\n");
JMF 0:24d3eb812fd4 15 for (size_t ix = 0; ix < res->get_headers_length(); ix++) {
JMF 0:24d3eb812fd4 16 printf("\t%s: %s\n", res->get_headers_fields()[ix]->c_str(), res->get_headers_values()[ix]->c_str());
JMF 0:24d3eb812fd4 17 }
JMF 0:24d3eb812fd4 18 printf("\nBody (%d bytes):\n\n%s\n", res->get_body_length(), res->get_body_as_string().c_str());
JMF 0:24d3eb812fd4 19 }
JMF 0:24d3eb812fd4 20
JMF 0:24d3eb812fd4 21 int main() {
JMF 0:24d3eb812fd4 22 pc.baud(115200);
JMF 0:24d3eb812fd4 23 // Connect to the network (see mbed_app.json for the connectivity method used)
JMF 0:24d3eb812fd4 24 NetworkInterface *network = easy_connect(true);
JMF 0:24d3eb812fd4 25 if (!network) {
JMF 0:24d3eb812fd4 26 printf("Cannot connect to the network, see serial output");
JMF 0:24d3eb812fd4 27 return 1;
JMF 0:24d3eb812fd4 28 }
JMF 0:24d3eb812fd4 29
JMF 0:24d3eb812fd4 30 // Do a GET request to httpbin.org
JMF 0:24d3eb812fd4 31 {
JMF 0:24d3eb812fd4 32 // By default the body is automatically parsed and stored in a buffer, this is memory heavy.
JMF 0:24d3eb812fd4 33 // To receive chunked response, pass in a callback as last parameter to the constructor.
JMF 0:24d3eb812fd4 34 HttpRequest* get_req = new HttpRequest(network, HTTP_GET, "http://httpbin.org/status/418");
JMF 0:24d3eb812fd4 35
JMF 0:24d3eb812fd4 36 HttpResponse* get_res = get_req->send();
JMF 0:24d3eb812fd4 37 if (!get_res) {
JMF 0:24d3eb812fd4 38 printf("HttpRequest failed (error code %d)\n", get_req->get_error());
JMF 0:24d3eb812fd4 39 return 1;
JMF 0:24d3eb812fd4 40 }
JMF 0:24d3eb812fd4 41
JMF 0:24d3eb812fd4 42 printf("\n----- HTTP GET response -----\n");
JMF 0:24d3eb812fd4 43 dump_response(get_res);
JMF 0:24d3eb812fd4 44
JMF 0:24d3eb812fd4 45 delete get_req;
JMF 0:24d3eb812fd4 46 }
JMF 0:24d3eb812fd4 47
JMF 0:24d3eb812fd4 48 // POST request to httpbin.org
JMF 0:24d3eb812fd4 49 {
JMF 0:24d3eb812fd4 50 HttpRequest* post_req = new HttpRequest(network, HTTP_POST, "http://httpbin.org/post");
JMF 0:24d3eb812fd4 51 post_req->set_header("Content-Type", "application/json");
JMF 0:24d3eb812fd4 52
JMF 0:24d3eb812fd4 53 const char body[] = "{\"hello\":\"world\"}";
JMF 0:24d3eb812fd4 54
JMF 0:24d3eb812fd4 55 HttpResponse* post_res = post_req->send(body, strlen(body));
JMF 0:24d3eb812fd4 56 if (!post_res) {
JMF 0:24d3eb812fd4 57 printf("HttpRequest failed (error code %d)\n", post_req->get_error());
JMF 0:24d3eb812fd4 58 return 1;
JMF 0:24d3eb812fd4 59 }
JMF 0:24d3eb812fd4 60
JMF 0:24d3eb812fd4 61 printf("\n----- HTTP POST response -----\n");
JMF 0:24d3eb812fd4 62 dump_response(post_res);
JMF 0:24d3eb812fd4 63
JMF 0:24d3eb812fd4 64 delete post_req;
JMF 0:24d3eb812fd4 65 }
JMF 0:24d3eb812fd4 66
JMF 0:24d3eb812fd4 67 Thread::wait(osWaitForever);
JMF 0:24d3eb812fd4 68 }
JMF 0:24d3eb812fd4 69
JMF 0:24d3eb812fd4 70 #endif