xiaorui qu
/
mbed-demo-http-get-json
http request for get json
main.cpp@1:0437cdff5724, 2020-11-08 (annotated)
- Committer:
- quxiaorui
- Date:
- Sun Nov 08 03:00:08 2020 +0000
- Revision:
- 1:0437cdff5724
- Parent:
- 0:cd14a0821140
support mbed 6.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
quxiaorui | 0:cd14a0821140 | 1 | #include "mbed.h" |
quxiaorui | 0:cd14a0821140 | 2 | #include "HTTPClient.h" |
quxiaorui | 0:cd14a0821140 | 3 | #include "errno.h" |
quxiaorui | 0:cd14a0821140 | 4 | NetworkInterface *net = NetworkInterface::get_default_instance(); |
quxiaorui | 0:cd14a0821140 | 5 | void get_json(char *url) |
quxiaorui | 0:cd14a0821140 | 6 | { |
quxiaorui | 0:cd14a0821140 | 7 | char buffer[256]; |
quxiaorui | 0:cd14a0821140 | 8 | HTTPJson httpjson(buffer, 256); |
quxiaorui | 0:cd14a0821140 | 9 | HTTPClient http(net); |
quxiaorui | 0:cd14a0821140 | 10 | HTTPResult result = http.get(url, &httpjson); |
quxiaorui | 0:cd14a0821140 | 11 | if (result == HTTP_OK) |
quxiaorui | 0:cd14a0821140 | 12 | { |
quxiaorui | 0:cd14a0821140 | 13 | printf("Result Json.\n%s\r\n", buffer); |
quxiaorui | 0:cd14a0821140 | 14 | } |
quxiaorui | 0:cd14a0821140 | 15 | else |
quxiaorui | 0:cd14a0821140 | 16 | { |
quxiaorui | 0:cd14a0821140 | 17 | printf("Error during download %d\r\n", result); |
quxiaorui | 0:cd14a0821140 | 18 | } |
quxiaorui | 0:cd14a0821140 | 19 | } |
quxiaorui | 0:cd14a0821140 | 20 | int main() |
quxiaorui | 0:cd14a0821140 | 21 | { |
quxiaorui | 0:cd14a0821140 | 22 | #ifdef MBED_MAJOR_VERSION |
quxiaorui | 0:cd14a0821140 | 23 | printf("Mbed OS version %d.%d.%d\n\n", MBED_MAJOR_VERSION, MBED_MINOR_VERSION, MBED_PATCH_VERSION); |
quxiaorui | 0:cd14a0821140 | 24 | #endif |
quxiaorui | 0:cd14a0821140 | 25 | printf("Mbed OS http get json example\n"); |
quxiaorui | 0:cd14a0821140 | 26 | nsapi_size_or_error_t result = net->connect(); |
quxiaorui | 0:cd14a0821140 | 27 | if (result != 0) |
quxiaorui | 0:cd14a0821140 | 28 | { |
quxiaorui | 0:cd14a0821140 | 29 | printf("Error! net->connect() returned: %d\n", result); |
quxiaorui | 0:cd14a0821140 | 30 | return result; |
quxiaorui | 0:cd14a0821140 | 31 | } |
quxiaorui | 0:cd14a0821140 | 32 | // Show the network address |
quxiaorui | 0:cd14a0821140 | 33 | SocketAddress a; |
quxiaorui | 0:cd14a0821140 | 34 | net->get_ip_address(&a); |
quxiaorui | 0:cd14a0821140 | 35 | printf("IP address: %s\n", a.get_ip_address() ? a.get_ip_address() : "None"); |
quxiaorui | 0:cd14a0821140 | 36 | net->get_netmask(&a); |
quxiaorui | 0:cd14a0821140 | 37 | printf("Netmask: %s\n", a.get_ip_address() ? a.get_ip_address() : "None"); |
quxiaorui | 0:cd14a0821140 | 38 | net->get_gateway(&a); |
quxiaorui | 0:cd14a0821140 | 39 | printf("Gateway: %s\n\n", a.get_ip_address() ? a.get_ip_address() : "None"); |
quxiaorui | 0:cd14a0821140 | 40 | // Get Json |
quxiaorui | 0:cd14a0821140 | 41 | get_json((char *)"http://ip-api.com/json/?fields=status,query"); |
quxiaorui | 0:cd14a0821140 | 42 | net->disconnect(); |
quxiaorui | 0:cd14a0821140 | 43 | } |