X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcurl%2Fcurl_interface.cc;fp=src%2Fcurl%2Fcurl_interface.cc;h=2c9e498c8f55c13f7c72ff0ea0df1c333454216e;hb=b9d7e9c232a4371ddfed51c58e5a57f87b057229;hp=0000000000000000000000000000000000000000;hpb=59f84608ec15c016958a6e0e0ddd813f376c0925;p=ric-app%2Fadmin.git diff --git a/src/curl/curl_interface.cc b/src/curl/curl_interface.cc new file mode 100644 index 0000000..2c9e498 --- /dev/null +++ b/src/curl/curl_interface.cc @@ -0,0 +1,48 @@ +#include "curl_interface.hpp" +curl_interface::curl_interface(std::string curl_collector_url):_curl_url(curl_collector_url){}; + + +bool curl_interface::post_metrics(std::string & data){ + + CURL *curl = curl_easy_init(); + CURLcode result; + bool res = false; + + if(curl) { + struct curl_slist *headers = NULL; + headers = curl_slist_append(headers, "Content-Type:application/json"); + + /* point to ves collector */ + curl_easy_setopt(curl, CURLOPT_URL, _curl_url.c_str()); + + /* Set header */ + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + + /* size of the POST data */ + curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, data.length()); + + /* pass in a pointer to the data - libcurl will not copy */ + curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data.c_str()); + + result = curl_easy_perform(curl); + if (result != CURLE_OK){ + _error.assign(curl_easy_strerror(result)); + } + else{ + res = true; + } + + curl_easy_cleanup(curl); + curl_free(headers); + } + else{ + _error.assign("Could not instantiate curl handle !"); + } + + return res; +} + + +std::string curl_interface::getError(void) const{ + return _error; +}