Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Wio_3G_HTTP-GET-example by
main.cpp
00001 #include "mbed.h" 00002 #include <sstream> 00003 #include "easy-connect.h" 00004 #include "https_request.h" 00005 #include "ssl_ca_pem.h" 00006 00007 // For your API Token, refer to "API token" in your application setting page 00008 const char API_TOKEN[] = "api-token"; 00009 // Your domain name can be seen in the usage explanation with curl. 00010 const char URL[] = "https://{domain}.cybozu.com/k/v1/record.json"; 00011 00012 // app_id, application id, can be checked with your application's URL 00013 // e.g. https://{domain}.cybozu.com/k/2/ -> app_id is 2 00014 int app_id = 1; 00015 00016 #if defined(__CC_ARM) 00017 // To avoid "invalid multibyte character sequence" warning 00018 #pragma diag_suppress 870 00019 #endif 00020 00021 #if !defined(TARGET_WIO_3G) 00022 #error Selected target is not supported. 00023 #endif 00024 00025 // on-board resources 00026 Serial pc(USBTX, USBRX, 115200); 00027 DigitalOut GrovePower(PB_10, 1); 00028 00029 #define D20 (PB_4) 00030 00031 // Grove sensors 00032 00033 // buzzer 00034 DigitalOut buzzer(D38); 00035 00036 // button or touch sensor 00037 InterruptIn btn(D20); 00038 int id = 0; 00039 00040 void push() 00041 { 00042 id++; 00043 } 00044 00045 // JSON simplicity parser 00046 char* j_paser( const char *buf , char *word , char *out ) 00047 { 00048 int i = 0; 00049 char *p; 00050 char _word[64] = "\"\0"; 00051 00052 strcat(_word , word ); 00053 strcat(_word , "\"" ); 00054 00055 p = strstr( (char*)buf , _word ) + 2 + strlen(_word); 00056 00057 while( (p[i] != ',')&&(p[i] != '\n')&&(p[i] != '"') ) { 00058 out[i] = p[i]; 00059 i++; 00060 } 00061 out[i] = '\0'; 00062 00063 return p; 00064 } 00065 00066 // main method. retrieve data from kintone by HTTP GET 00067 int main() 00068 { 00069 btn.mode(PullUp); 00070 btn.fall(push); // set interrupt handler 00071 00072 NetworkInterface* network = NULL; 00073 network = easy_connect(true); // If true, prints out connection details. 00074 if (!network) { 00075 pc.printf("\n----- Network Error -----\n"); 00076 return -1; 00077 } 00078 00079 pc.printf("\n----- Network Connected -----\n"); 00080 wait(2.0); 00081 00082 while(1) { 00083 // Set url 00084 std::stringstream ss_url; 00085 std::string s_url(URL); 00086 00087 ss_url << s_url << "?app=" << app_id << "&id=" << id; 00088 string url = ss_url.str(); 00089 pc.printf("%s\n", url.c_str()); 00090 00091 pc.printf("\n----- HTTPS GET request -----\n"); 00092 HttpsRequest* get_req = new HttpsRequest(network, SSL_CA_PEM, HTTP_GET, url.c_str()); 00093 get_req->set_header("X-Cybozu-API-Token", API_TOKEN); 00094 HttpResponse* get_res = get_req->send(); 00095 00096 pc.printf("\n----- HTTPS GET response [%d]-----\n", get_res->get_status_code()); 00097 00098 if(get_res->get_status_code() == 200) { 00099 pc.printf("\n----- HTTPS GET response 200 -----\n"); 00100 const char* body = get_res->get_body_as_string().c_str(); 00101 00102 pc.printf("%s\n", body); 00103 00104 // Response JSON parse 00105 char value[256]; 00106 00107 char* p = j_paser(body, "日付", value); 00108 j_paser(p,"value", value); 00109 pc.printf("date:%s\n", value); 00110 00111 p = j_paser(body, "文字列__1行_", value); 00112 j_paser(p,"value", value); 00113 pc.printf("%s\n", value); 00114 00115 buzzer = 1; 00116 wait(0.1); 00117 buzzer = 0; 00118 } 00119 00120 delete get_req; 00121 wait(10.0); 00122 } 00123 }
Generated on Mon Jul 18 2022 20:10:59 by
1.7.2
