1.更改url
用翔云平台下的人脸识别的API文档
把他贴到url中:
2.定义参数 (根据平台给定的这些串口接收参数来定义)
key和secret在这里找:
3.指定post内容
把这部分定义成一个postString
4.字符串的拼接
sprintf函数调用的主要用途就是把一个字符串放在一个已知的字符数组里去
5.cookie先不动,最终进行请求,然后打印下请求的结果
6.思路:main函数进来,posturl(不传参了,没啥意义)
sprintf拼接字符串
然后curl_easy_init()初始化
设置cookie; 要上传的字段;人脸识别的网址;数据回来后去读数据;请求,打印请求结果。
并且把真正有效的字符打出来
编译运行
结果-1代表失败了,没有和翔云后台接通正常来说应该是200。
原因是电脑没有装OpenSSL.
解决办法:编译时加一个环境变量,指定Openssl的位置,编译时加这个选项(with ssl)
因为HTTPS协议是由SSL+HTTP协议构建的一种协议
ssl的作用:
由于接口是https开头的(人脸识别走的是http通信),https协议是在http和tcp之间多加的一层,进行身份验证和数据加密。身份验证就是key和secret。
但我们编译出来的仅支持http不支持https。
所以:
打开 docs/INSTALL.md (这个库的说明书),知道了想编译需要加ssl
加ssl编译:
但提示编译错误,因为没有OpenSSL库
安装openssl库
安装openssl库指令:wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz
解压:tar xvf openssl…
得到:
一般也是先看一下READ.ME
然后make
接着,sudo make install
编译成功后,回到curl下,继续编译:
(这样 系统里就有ssl了)
再make
再make_install
再回到handler下
编译运行:
但是说产品类型错误,因为我们写demo2的时候没上传图片
如何上传图片
1.首先:平台规定img1和img2是要以字符串(base64流的形式)上传的。
2.平时的图片一般是以jpg形式(压缩过的)存在的。bmp形式的是没压缩过的。
一张图片由很多个小的颜色色块组成,每种颜色的色块都有对应的字符串,可以把这些字串转成base64的编码
3.找两张人物图片复制到linux下
(先放到共享文件夹里,在这里输入指令sudo cp lhc.jpg /home/jmh/ 和
sudo cp lhc2.jpg /home/jmh/ 给他俩复制到工作目录下)
4.linux下自带的把jpg形式的图片转换成base64流的指令:base 64
回到httpHandler文件夹下
把两张图片贴过来:
调用system函数,把这张图生成的数据导入到tmpFile里
然后编译运行,生成了这个tmpFile文件。然后就可以通过读文件的形式来操作了