linux curl网络库的使用方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux curl网络库的使用方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2036字,纯文字阅读大概需要3分钟。
内容图文
![linux curl网络库的使用方法](/upload/InfoBanner/zyjiaocheng/979/2be4852ad2104e8ca6e8a66d7301929c.jpg)
struct V3MemoryStruct { char *memory; size_t size; }; static size_t WriteMemoryCallback(void *contents, size_t size, size_t nmemb, void *userp) { size_t realsize = size * nmemb; struct V3MemoryStruct *mem = (struct V3MemoryStruct *)userp; char *ptr = (char *)realloc(mem->memory, mem->size + realsize + 1); if(ptr == NULL) { /* out of memory! */ printf("not enough memory (realloc returned NULL)\n"); return 0; } mem->memory = ptr; memcpy(&(mem->memory[mem->size]), contents, realsize); mem->size += realsize; mem->memory[mem->size] = 0; return realsize; }
void EW_HandleV3Url(APIV3_REQUEST_TYPE type,char *url,Json::Value &resultjson) { struct V3MemoryStruct chunk; chunk.memory = (char *)malloc(sizeof(char)); /* will be grown as needed by the realloc above */ chunk.size = 0; /* no data at this point */ //if(type == APIV3_SEARCH_TYPE) { curl_global_init(CURL_GLOBAL_ALL); CURL *curl = NULL; curl = curl_easy_init(); if(curl == NULL) { printf("curl is NULL.\n"); curl_global_cleanup(); return ; } curl_easy_setopt(curl, CURLOPT_URL,url); curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER,0);//跳过ssl证书 从机 curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0);//跳过ssl 证书 主机 curl_easy_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);//使用IPV4地址 curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);//将一些请求参数输出到控制台 类似如打印 curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,WriteMemoryCallback);//请求 返回的数据回调函数指针 curl_easy_setopt(curl,CURLOPT_WRITEDATA,(void *)&chunk);//请求 返回数据的buffer curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT_MS,15000); CURLcode res = CURLE_FAILED_INIT; res = curl_easy_perform(curl); if(res != CURLE_OK) printf("curl_easy_perform() failed: %s\n",curl_easy_strerror(res)); else printf("%lu bytes retrieved\n",(unsigned long)chunk.size); if(chunk.size <=0) { printf("recv data have problem.please check curl flow.\n "); return; } //json parse start if(type == APIV3_SEARCH_TYPE) { // } else {//most popular part } //json parse end /* always cleanup */ curl_easy_cleanup(curl); free(chunk.memory); curl_global_cleanup(); } }
内容总结
以上是互联网集市为您收集整理的linux curl网络库的使用方法全部内容,希望文章能够帮你解决linux curl网络库的使用方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。