c语言linux下https访问翔云AI人脸识别

2023-10-28 13:20

本文主要是介绍c语言linux下https访问翔云AI人脸识别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

c语言https访问翔云AI人脸识别

一. 安装环境

(一)安装opnssl:

下载openssl:

wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz

解压:

 tar xvf openssl-1.1.1a.tar.gz

编译:

cd openssl-1.1.1a/
./config
make -j4

安装:

sudo make install

二 安装libcurl库

下载地址

https://github.com/curl/curl/releases/tag/curl-7_71_1

解压

tar -xvf curl-7.71.1.tar.gz

编译

cd curl-7.71.1/
./configure --prefix=$HOME/curl --with-ssl
make -j4

安装

sudo make install

二. C代码的编写

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <curl/curl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/types.h>
#include <unistd.h>typedef unsigned int bool;  //编译器并不支持bool类型,定义成这样
#define false 0
#define true 1char *getPicFromOCRBase64(char *Filepath)//调用linux下的base64指令,将图片转成base64流的文件
{int fd;int filelen;char cmd[128]={'\0'};sprintf(cmd,"base64 %s > tmpFile",Filepath);system(cmd);
//	system("base64 mayun1.jpg > tmpFile");fd=open("./tmpFile",O_RDWR);filelen=lseek(fd,0,SEEK_END);lseek(fd,0,SEEK_SET);char *bufpic=(char *)malloc(filelen+2);memset(bufpic,'\0',filelen+2);read(fd,bufpic,filelen+128);system("rm -rf tmpFile");close(fd);return bufpic;
}
size_t readData( void *ptr, size_t size, size_t nmemb, void *stream)
{char buf[1024]={'\0'};strncpy(buf,ptr,1024);printf("===================get Data=========================\n");printf("%s",buf);}bool postUrl()
{CURL *curl;CURLcode res;char img1[12];char img2[12];char *key="翔云平台的人脸识别KEY";char *secret="翔云平台的人脸识别SECRET";int typeId=21;char *format="xml";char *bufpic1=getPicFromOCRBase64("图片名.jpg");char *bufpic2=getPicFromOCRBase64("图片名.jpg");int len=(strlen(key)+strlen(secret)+strlen(bufpic1)+strlen(bufpic2)+128);char *postString;postString=(char *)malloc(len);memset(postString,'\0',len);sprintf(postString,"&img1=%s&img2=%s&key=%s&secret=%s&typeId=%d&format=%s",bufpic1,bufpic2,key,secret,typeId,format);curl = curl_easy_init();if (curl){curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "/tmp/cookie.txt"); // 指定cookie文件curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postString);    // 指定post内容curl_easy_setopt(curl, CURLOPT_URL, "翔云平台人脸识别接口 ");   // 指定url  这里url实际上就是一个网址curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION , readData);res = curl_easy_perform(curl);printf("OK %d\n",res);curl_easy_cleanup(curl);}return true;}
int main(void)
{//	getUrl("/tmp/get.html");postUrl();
}

三 运行与调试

运行

gcc demo4.c -I ./curl-7.71.1/_install/include/ -L ./curl-7.71.1/_install/lib -lcurl
//注意这里-I指明curl库头文件的位置 -L指明库的位置。根据自己的安装路径来就行

运行出现以下错误
在这里插入图片描述
解决,其实就是配置环境变量,告诉编译器到哪个目录下去找头文件和库文件。

export LD_LIBRARY_PATH=./curl-7.71.1/_install/lib/

结果展示
在这里插入图片描述

这篇关于c语言linux下https访问翔云AI人脸识别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/293510

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问