libcurl可以用来发送http请求,是c/c++发送http请求常用的库

下载libcurl源码包:

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

解压到

C:\source\repos\libcurl\curl-7.60.0

打开curl文件夹,以管理员权限运行buildconf.bat。

编译libcurl源码

选择【开始】->[Visual Studio 2017]->[Visual Studio Tools]->[VC]->[x64 Native Tools Command Prompt for VS 2017]

打开后,进入得到对应的curl目录下

cd C:\source\repos\libcurl\curl-7.60.0\winbuild

VS2017 x64 静态编译

输入下面的命令,然后回车,开始编译

nmake /f Makefile.vc mode=static VC=14 MACHINE=x64 DEBUG=no

编译选项说明:

如果想使用动态编译,将mode=static改为mode=dll。(本文仅教静态编译,同时curl官方也不建议使用动态编译)

如果使用x86,将MACHINE=x64改为MACHINE=x86。

如果需要debug版,将DEBUG=no改为DEBUG=yes。

更详细的编译指令及说明可以打开winbuild文件夹中的BUILD.WINDOWS.txt查看。

大概几分钟就可以编译结束(i5-3470 CPU 3.2GHz, 8G内存,7200转机械硬盘)。

待编译结束,关闭控制台界面。

打开C:\source\repos\libcurl\curl-7.60.0\文件夹中的builds文件夹,将名字最短的文件夹备份(如果x64和x86都编译了,则需要备份两个名字最短的文件夹),curl文件夹如果无其他需要则可全部删除。

配置VS2017工程

拷贝上面生成的C:\source\repos\libcurl\curl-7.60.0\builds\libcurl-vc15-x64-release-static-ipv6-sspi-winssl下的include和lib目录到C:\根目录下

1.打开VS2017,新建一个工程testcurl,Select [File]->[NewProject]->[Visual C++]->[Windows Desktop]->[Windows Console Application]

2.右击工程,选择属性,选择[Configurations]选择Release

3.[Platform]选择x64,确认编译时选中的也是Release, x64

4.将刚刚编译生成的文件夹中的include文件夹和lib文件夹添加至工程。(如果编译了debug版libcurl,则应将debug文件夹中的内容添加至debug配置工程)

[Configuration Properties]->[VC++ Directories],选择edit

4.1[Include Directories]里面新增C:\include

4.2[Library Directories]里面新增C:\lib

5.使用了静态编译libcurl,所以需要将CURL_STATICLIB添加至工程

[Configuration Properties]->[C/C++]->[Preprocessor],选择edit

新增CURL_STATICLIB;

6.确认[Configuration Properties]->[C/C++]->[Code Generation]->[Runtime Library]设置为“Multi-threaded DLL(/MD)”

如果没有编译debug版libcurl,则需要将“Runtime Library”改为Release版(即后面不带小写字母d)。同时官方并不建议使用“/MT”或“/MTd”。

7.[Configuration Properties]->[Additional Dependencies]里面新增libcurl_a.lib

8.输入下面由Postman生成的测试代码,Postman是个很好用的调试http接口的工具,建议简单学习一下:


#include "stdafx.h" // 需要下面的库才能通过build,具体为什么需要,以后再研究吧
#pragma comment ( lib, "ws2_32.lib" )
#pragma comment ( lib, "wldap32.lib" )
#pragma comment(lib, "Crypt32.lib") #include <curl/curl.h>
#include <stdio.h>
using namespace std; int main(void)
{
// 初始化
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_URL, "http://193.28.51.120:8002/api/account/validtoken"); struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer I am a login token");
headers = curl_slist_append(headers, "Content-Type: application/json");
headers = curl_slist_append(headers, "accept: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\"userId\": \"43000010\"}");
CURLcode ret = curl_easy_perform(hnd);
printf("ret0:%d\n", ret);
LONG nHttpCode = 0;
// 取下HTTP返回状态码(200为成功)
ret = curl_easy_getinfo(hnd, CURLINFO_RESPONSE_CODE, &nHttpCode);
printf("ret1:%d\n", ret);
printf("nHttpCode:%d\n", nHttpCode); // 回收资源
curl_easy_cleanup(hnd); return 0;
}

参考:

https://blog.csdn.net/cym1990/article/details/79851039

https://blog.csdn.net/DaSo_CSDN/article/details/77587916

vs2017编译并配置libcurl入门教程的更多相关文章

  1. Win10 + vs2017 编译并配置tesseract4.1.0

    tesseract 是一个开源的OCR (Optical Character Recognition , 光学字符识别) 引擎,本文就介绍一下自己在编译 tesseract4.1.0时遇到的一些坑,希 ...

  2. ubuntu 16.04源码编译和配置caffe详细教程 | Install and Configure Caffe on ubuntu 16.04

    本文首发于个人博客https://kezunlin.me/post/b90033a9/,欢迎阅读! Install and Configure Caffe on ubuntu 16.04 Series ...

  3. 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置

    本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接:http://blog.csdn.net/poem_qianmo/article/details/19809337 作者:毛星云(浅墨 ...

  4. 《Visual C++ 2010入门教程》系列二:安装、配置和首次使用VS2010

    作者:董波 日期:2010.6.15 写在前面 在我还在上学的时候,我选择了C++,最初我用VC6作为我的IDE,我看过很多本C++的教材,有的适合我,有的不适合我,其中有一本叫<Visual ...

  5. 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0 +VS 2013 开发环境配置

    图片太多,具体过程参照: [OpenCV入门教程之一] 安装OpenCV:OpenCV 3.0.OpenCV 2.4.8.OpenCV 2.4.9 +VS 开发环境配置 说下我这边的设置: 选择deb ...

  6. PyCharm 2017 官网 下载 安装 设置 配置 (主题 字体 字号) 使用 入门 教程

    一.安装 Python 3.6 首先,要安装好 Python 3.6.如果你还没有安装,可以参考咪博士之前的教程 Python 3.6.3 官网 下载 安装 测试 入门教程 (windows) 二.官 ...

  7. Spring Cloud 入门教程 - 搭建配置中心服务

    简介 Spring Cloud 提供了一个部署微服务的平台,包括了微服务中常见的组件:配置中心服务, API网关,断路器,服务注册与发现,分布式追溯,OAuth2,消费者驱动合约等.我们不必先知道每个 ...

  8. qt5.11.2+vs2017环境下配置pcl1.8.1以及第三方依赖库vtk的编译

    1.准备工作 我所用的开发环境是win10下的qt5.11.2配置了vs2017的编译器,根据自己所用的VS的版本去官网下载对应版本的pcl库,如下 PCL-1.8.1-AllInOne-msvc20 ...

  9. Spring Cloud 入门教程(三): 配置自动刷新

    之前讲的配置管理, 只有在应用启动时会读取到GIT的内容, 之后只要应用不重启,GIT中文件的修改,应用无法感知, 即使重启Config Server也不行. 比如上一单元(Spring Cloud ...

随机推荐

  1. DBUtils 增删改查例子

    sql CREATE TABLE [dbo].[Person] ( , ) NOT NULL , ) COLLATE Chinese_PRC_CI_AS NULL , [age] [int] NULL ...

  2. 推动FPGA发展箭在弦上,国内厂商须走差异化之路

    7月25日,由中国电子报与深圳投资推广署共同举办的“第六届(2018)中国FPGA产业发展论坛”在深圳召开. 作为四大通用集成电路芯片之一,FPGA(现场可编程门阵列)的重要性与CPU.存储器.DSP ...

  3. Codeforces 982C(dfs+思维)

    C. Cut 'em all! time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  4. docker 远程rest api 访问配置

    Docker RestApi 的配置及使用 Centos Docker1.12 远程Rest api访问的配置方法 http restapiv1.24 docker sdk for python

  5. 如何利用JConsole观察分析Java程序的运行并进行排错调优_java

    如何利用JConsole观察分析Java程序的运行并进行排错调优_java 官方指导  use jconsole use jmx technology

  6. POJ1159解题心得

    题目:http://poj.org/problem?id=1159 刚开始,从样例的特征去思考.总让我从回文数的角度去思考,想出几个方案,可都用了数据去检验,发现不行.如:ABCDDCB,BACDCA ...

  7. ALSA声卡12_从零编写之添加音量控制_学习笔记

    1.设置音量时应用程序的调用过程 (1)strace分析: amixer cset numid=1 30 (设置音量) /dev/snd/controlC0 open SNDRV_CTL_IOCTL_ ...

  8. nova volume-create的使用

    处理cinder可以直接创建volume外,nova也是可以的 如: 可以看出创建一个名字为volume2的卷,大小为10G 把创建好的volume2卷直接挂在vm虚拟机上 如:先查看计算节点有几个v ...

  9. 第七章 : Git 介绍 (上)[Learn Android Studio 汉化教程]

    Learn Android Studio 汉化教程 [翻译]Git介绍 Git版本控制系统(VCS)快速成为Android应用程序开发以及常规的软件编程领域内的事实标准.有别于需要中心服务器支持的早期 ...

  10. 07_java之练习题

    01奇数求和练习 * A: 奇数求和练习 * a: 题目分析 * 为了记录累加和的值,我们需要定义一个存储累加和的变量 * 我们要获取到1-100范围内的数 * 判断当前数是否为奇数,是奇数,完成累加 ...