# curl **Repository Path**: miaovictor/curl ## Basic Information - **Project Name**: curl - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2018-06-05 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 简介 [curl](https://github.com/curl/curl)命令是一个功能强大的网络工具,它能够通过 http、ftp 等方式下载文件,也能够上传文件,同时支持 https 等众多协议,还支持 post、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。该项目在 curl 的基础上,增加了访问[臻云极致云平台 API](https://www.kancloud.cn/vzenith/stp/621995)所需的签名。 ## 编译 ### Windows 环境编译 #### 前期准备 - 安装[git](https://git-scm.com/) - 安装[cmake](https://cmake.org/) - 安装[ActivePerl](https://www.activestate.com/activeperl/downloads) - 安装[Visual Studio](https://www.visualstudio.com/) #### 编译 openssl 1. 下载[openssl](https://www.openssl.org/source/),注意这里只能下载 1.0.x 版本,比如[openssl-1.0.2o.tar.gz](https://www.openssl.org/source/openssl-1.0.2o.tar.gz)。 2. 解压 openssl 到一个目录,比如`D:\ThirdParty\openssl-1.0.2o`。 3. 打开 VS 20XX 的开发人员命令提示工具,进入`D:\ThirdParty\openssl-1.0.2o`。 4. 输入`perl Configure VC-WIN32 no-asm --prefix=D:\ThirdParty\openssl`。 5. 输入`ms\do_ms.bat`。 6. 输入`nmake -f ms\ntdll.mak`,执行完后会在当前目录下生成一个`out32dll`的文件夹,里面包含了一些静态库、动态库和.exe 文件。 7. 输入`nmake -f ms\ntdll.mak install`,则会在`D:\ThirdParty\openssl`目录下生成 bin、include、lib、ssl 四个文件夹。 8. 添加到环境变量`OPENSSL_ROOT_DIR`,值为`D:\ThirdParty\openssl`。 #### 编译 curl 1. 使用 git 下载最新代码到本地目录,比如`D:\Code\curl`: ``` git clone https://gitee.com/miaovictor/curl.git ``` 2. 打开 VS 20XX 的开发人员命令提示工具,进入`D:\Code\curl`。 3. 输入`mkdir build && cd build`。 4. 输入`cmake .. -G "Visual Studio 15 2017" -DBUILD_TESTING=OFF` 针对不同版本的 VS,`-G`后面带的参数如下: ``` Visual Studio 9 2008 Visual Studio 9 2008 Win64 Visual Studio 10 2010 Visual Studio 10 2010 Win64 Visual Studio 11 2012 Visual Studio 11 2012 Win64 Visual Studio 12 2013 Visual Studio 12 2013 Win64 Visual Studio 14 2015 Visual Studio 14 2015 Win64 Visual Studio 15 2017 Visual Studio 15 2017 Win64 ``` 5. 用相应版本的 VS 打开 build 目录下的 CURL.sln,配置管理器选中 Relase,编译 curl 工程。 6. 生成的 curl.exe 依赖于 libcurl.dll、libeay32.dll、ssleay32.dll 这三个动态链接库,将它们复制到 curl.exe 所在的目录,即可使用 curl.exe 了。 ### Ubuntu 环境编译 #### 前期准备 - 安装 gcc/g++ ``` sudo apt-get install gcc sudo apt-get install g++ ``` - 安装[git](https://git-scm.com/) ``` sudo apt-get install git ``` - 安装[cmake](https://cmake.org/) ``` sudo apt-get install cmake ``` #### 编译 openssl 1. 下载[openssl](https://www.openssl.org/source/),注意这里只能下载 1.0.x 版本,比如[openssl-1.0.2o.tar.gz](https://www.openssl.org/source/openssl-1.0.2o.tar.gz)。 2. 解压 openssl 到一个目录,比如`~/ThirdParty/openssl-1.0.2o`。 3. 打开终端,进入`~/ThirdParty/openssl-1.0.2o`。 4. 输入`./config shared --prefix=/home/victor/WorkSpace/ThirdParty/openssl`,其中`--prefix`后面的路径视自己环境而定。 5. 输入`make && make install`,执行完毕后会在`/home/victor/WorkSpace/ThirdParty/openssl`目录下生成 bin、include、lib、ssl 四个文件夹。 6. 添加到环境变量`OPENSSL_ROOT_DIR`,值为`/home/victor/WorkSpace/ThirdParty/openssl`。 #### 编译 curl 1. 使用 git 下载最新代码到本地目录,比如`~/Code/curl`: ``` git clone https://gitee.com/miaovictor/curl.git ``` 2. 打开终端,进入`D:\Code\curl`。 3. 输入`mkdir build && cd build`。 4. 输入`cmake .. -DBUILD_TESTING=OFF`。 5. 输入`make`,完成后在`build/src`目录下即可看到 curl 可执行文件。 ## 使用 由于该项目是在 curl 的基础上增加了签名的功能,所以其使用方法于原来的 curl 基本一致,详细的使用请见[参考手册](https://curl.haxx.se/docs/manual.html)。 下面以一个例子来讲解: ``` curl http://127.0.0.1:8000/v1/root_user --appid 0123456789ABCDEFGHIJKLMNOPQRSTUV --appkey 0123456789abcdefghijklmnopqrstuv -X POST -H "Content-Type:application/json" -d "{\"email\":\"fgfgffg@example.com\",\"password\":\"4QrcOUm6Wau+VuBX8g+IPg==\",\"phone\":\"00123456789\",\"company\":\"vzenith\",\"commit\":\"XXXXX\"}" ``` 注意:在这个例子中的换行并不存在,只是为了在显示上好看。 1. 要访问臻云极致云平台 API,`appid`和`appkey`这两个参数必须存在,并且必须通过`-X`显示指定请求方法。 2. 如果 API 需要传递 Body Data,则必须通过`-H`显示指定`Content-Type`。 3. 如果不指定`appid`,curl 与原来的 curl 没有区别,当然也不能访问臻云极致云平台 API。