https://www.cnblogs.com/smallleiit/p/11646622.html
构建json串
cJSON * root = cJSON_CreateObject();
cJSON_AddItemToObject(root, "name", cJSON_CreateString(Name));
cJSON_AddItemToObject(root, "Ip", cJSON_CreateString(Ip));
text = cJSON_Print(root);
首先shell命令:
[root@controller /]# curl http://192.168.27.92:8080/stats/packets/arp -X POST -H "Content-Type:application/json" -d '{"dpid": 60447901079364,"count": 5,"packets": [{"port": 2,"vlan ": 24,"mac": "6c:92:bf:e0:36:e7","ip": "1.1.1.1"},]}'
[root@controller /]#
int license_url_request(char *url, char *data, int size)
{
int ret = -1;
CURLcode res;
CURL *curl_h = NULL;
long retcode = 0;
struct mem_curl_data msg = { NULL, 0};
struct curl_slist *list = NULL;
if(url == NULL || data == NULL){
return -1;
}
curl_global_init(CURL_GLOBAL_ALL);
/* init the curl session */
curl_h = curl_easy_init();
if(strncmp(url, "https", 5) == 0){
curl_easy_setopt(curl_h, CURLOPT_SSL_VERIFYPEER, 0);
curl_easy_setopt(curl_h, CURLOPT_SSL_VERIFYHOST, 0);
}
/* specify URL to get */
curl_easy_setopt(curl_h, CURLOPT_URL, url);
/* set curl head */
list = curl_slist_append(list, "Content-Type: application/json");
list = curl_slist_append(list, "Accept: */*");
curl_easy_setopt(curl_h, CURLOPT_HTTPHEADER, list);
/* send all data to this function */
curl_easy_setopt(curl_h, CURLOPT_WRITEFUNCTION, agent_curl_read_data);
/* we pass our 'chunk' struct to the callback function */
curl_easy_setopt(curl_h, CURLOPT_WRITEDATA, (void *)&msg);
/* get it! */
res = curl_easy_perform(curl_h);
curl_easy_getinfo(curl_h, CURLINFO_RESPONSE_CODE, &retcode);
/* free cache */
curl_slist_free_all(list);
/* check for errors */
if(res == CURLE_OK && retcode == 200) {
ret = 0;
} else {
ret = -1;
}
if(msg.size <= size && msg.memory != NULL) {
memset(data, 0x00, size);
memcpy(data, msg.memory, msg.size);
free(msg.memory);
}
curl_easy_cleanup(curl_h);
curl_global_cleanup();
return ret;
}
int license_reply(char *url, char *data, int size)
{
struct curl_slist* headers = NULL;
curl_global_init(CURL_GLOBAL_ALL);
CURL *easy_handle = curl_easy_init();
/*
if(strncmp(url, "https", 5) == 0){
curl_easy_setopt(curl_h, CURLOPT_SSL_VERIFYPEER, 0);
curl_easy_setopt(curl_h, CURLOPT_SSL_VERIFYHOST, 0);
}
*/
curl_easy_setopt(easy_handle, CURLOPT_URL, url);
// 单个域post
curl_easy_setopt(easy_handle, CURLOPT_POSTFIELDS, data);
headers = curl_slist_append(headers, "Content-Type:application/json;charset=UTF-8");
curl_easy_setopt(easy_handle, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(easy_handle, CURLOPT_POST, 1);
curl_easy_perform(easy_handle);
curl_easy_cleanup(easy_handle);
curl_global_cleanup();
return 0;
}
阅读(4767) | 评论(0) | 转发(0) |