curl下载地址https://curl.haxx.se/download.html

当前最新版本为7.61.0

将下载的curl-7.61.0.zip解压,得到curl-7.61.0

在目录curl-7.61.0\winbuild中打开cmd

找到vcvars32.bat的位置(它在VS的安装目录中),在刚刚打开的cmd中运行此bat(目的是设置临时的环境变量,使当前的cmd可以运行nmake)

在cmd中运行nmake /f Makefile.vc mode=dll VC=<VC版本>,例如nmake /f Makefile.vc mode=dll VC=14

构建结束后,curl-7.61.0\builds\libcurl-vc15-x86-release-dll-ipv6-sspi-winssl中的lib\libcurl.lib、bin\libcurl.dll和include\curl\*.h便是我们所需要的库和头文件

GET示例

#include <stdio.h>
#include <curl/curl.h>
#pragma comment(lib, "libcurl.lib")
size_t writeFunction(void *data, size_t sizeOfEachObject, size_t numberOfObjects);
int main()
{
curl_global_init(CURL_GLOBAL_ALL);
CURL *curl = curl_easy_init();
if (curl)
{
const char *url = "https://api.eyekey.com/face/Check/checking?app_id=f89ae61fd63d4a63842277e9144a6bd2&app_key=af1cd33549c54b27ae24aeb041865da2&url=http%3A%2F%2Fpicview01.baomihua.com%2Fphotos%2F20120713%2Fm_14_634778197959062500_40614445.jpg";
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writeFunction);
CURLcode curlCode = curl_easy_perform(curl);
if (CURLE_OK != curlCode)
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(curlCode));
curl_easy_cleanup(curl);
}
else
printf("Something went wrong\n");
curl_global_cleanup();
system("pause");
return ;
}
size_t writeFunction(void *data, size_t sizeOfEachObject, size_t numberOfObjects)
{
char *dataPtr = (char *)data;
dataPtr[numberOfObjects] = '\0';
printf("%s", dataPtr);
return sizeOfEachObject * numberOfObjects;
}

POST示例

#include <stdio.h>
#include <curl/curl.h>
#pragma comment(lib, "libcurl.lib")
int main()
{
curl_global_init(CURL_GLOBAL_ALL);
CURL *curl = curl_easy_init();
if (curl)
{
const char *url = "https://api.eyekey.com/face/Check/checking";
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "app_id=f89ae61fd63d4a63842277e9144a6bd2&app_key=af1cd33549c54b27ae24aeb041865da2&url=https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/w%3D268%3Bg%3D0/sign=18bb0cc2dd1373f0f53f68999c342cc6/caef76094b36acafe725024570d98d1000e99c46.jpg");
CURLcode curlCode = curl_easy_perform(curl);
if (CURLE_OK != curlCode)
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(curlCode));
curl_easy_cleanup(curl);
}
curl_global_cleanup();
system("pause");
return ;
}

参考链接

Example libcurl GET request

libcurl example - http-post.c

最新文章

  1. C#使用资源文件的方法
  2. 利用FileStream实现多媒体文件复制
  3. Struts2部署在Websphere上的问题
  4. 集群(cluster)原理(转)
  5. yum 搭建lnmp环境详细步骤
  6. 如何从Eclipse导入github上的项目源码
  7. IE7,8,9兼容性处理
  8. echarts之词云随机颜色的配置
  9. Git相关操作二
  10. web实现数据交互的几种常见方式
  11. 在java程序中实现发送邮件的功能
  12. 712. Minimum ASCII Delete Sum for Two Strings
  13. H5 marquee标签
  14. window.location.href 页面不跳转解决
  15. webpack-loader是怎样炼成的
  16. 从字节码层面看“HelloWorld”
  17. 使用navicat 连接mysql出现1251错误
  18. spark on yarn任务提交缓慢解决
  19. leetcode-844 Backspace String Compare
  20. 对linux内核中jiffies+Hz表示一秒钟的理解

热门文章

  1. 有关git的配置
  2. iOS知识列表
  3. BZOJ 4568 [Scoi2016]幸运数字 ——线性基 倍增
  4. Classloader中loadClass()方法和Class.forName()区别
  5. HDU [P3949] XOR
  6. Apache Sqoop - Overview Apache Sqoop 概述
  7. poj1426 - Find The Multiple [bfs 记录路径]
  8. Controller配置汇总
  9. Mac OS X 下安装python的MySQLdb模块
  10. [bzoj1345][Baltic2007]序列问题_单调栈