Back to Iotdb

a complete C rest client demo project

example/rest-client-c-example/README.md

2.0.82.5 KB
Original Source
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -->

a complete C rest client demo project

project structure

  • base64.c/base64.h: a util for base64.encode/decode

  • main.c: call the rest api for IoTDB

How to build

dependency: libcurl

  • example: Ubuntu 16.04 STL (Ubuntu 20.04 may have some problems)
shell
sudo apt-get install libcurl4-openssl-dev

Before build, you must install the libcurl.

build steps:

shell
mkdir build
cd build
cmake ..
make 

Eventually, you will get an executable program c_rest_iotdb in build directory.

cross compilation

  • os : Ubuntu 16.04 STL
  1. choose and install cross compiler according to the target host

arm-linux-gnueabihf-gcc as an example.

  • arm-linux-gnueabihf-gcc
shell
sudo apt-get install gcc-arm-linux-gnueabihf
  1. cross compile libcurl
shell
./configure --host=arm-linux/arm-linux-gnueabihf/others CC=arm-linux-gnueabihf-gcc --prefix=`install dir` --enable-static --with-wolfssl
make
make install
  1. cross compile the example program
shell
arm-linux-gnueabihf-gcc main.c base64.c -o c_rest -L `(libcurl install dir)/lib/` -l curl

if can't find curl/curl.h, you can just simply change to the absolutely path or specify the include path.

Reference Materials

libcurl usage:

https://blog.csdn.net/myvest/article/details/82899788

compilation:

https://blog.csdn.net/u011641885/article/details/46900771

https://www.cnblogs.com/flyinggod/p/10148228.html

https://blog.csdn.net/fangye945a/article/details/86500817

https://www.cnblogs.com/yxh-l-0824/p/13254891.html

https://www.cnblogs.com/tansuoxinweilai/p/11602830.html

https://www.cnblogs.com/pied/p/8805883.html