curl下载编译
发布时间:2025.07.29
打开这个教程的网址去下载curl
https://blog.csdn.net/wcc27857285/article/details/86538804?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-5-86538804-blog-75505497.pc_relevant_recovery_v2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-5-86538804-blog-75505497.pc_relevant_recovery_v2&utm_relevant_index=10
下面是x86native里面输入的(vc对应自己vs版本up为vs2019 machine为自己项目中的x多少 项目中如果是release那debug就为no)
nmake/f Makefile.vc mode=static VC=16 MACHINE=x86 DEBUG=yes
下面为内部属性配置(属性中应与外部一致例如外面是x86 debug那里面也应对应)
下面内容填入链接器->输入->附加依赖项( 项目中如果是release那就把libcurl_a_debug.lib改为libcurl_a.lib)
libcurl_a_debug.lib;Ws2_32.lib;Wldap32.lib;winmm.lib;Crypt32.lib;Normaliz.lib
下面内容填入C/C++–>预处理器–>预处理器定义
CURL_STATICLIB;_CRT_SECURE_NO_WARNINGS;BUILDING_LIBCURL;HTTP_ONLY;
C/C++–>常规->附加包含目录(以下为up的curl.h地址自己对应看一下自己的复制)
C:Users86157Desktopcurl-7.88.1uildslibcurl-vc16-x86-debug-static-ipv6-sspi-schannelincludecurl
链接器->常规->附加库目录(以下为up的libcurl_a_debug.lib地址自己对应看一下自己的复制)
C:Users86157Desktopcurl-7.88.1uildslibcurl-vc16-x86-debug-static-ipv6-sspi-schannellib
以下为up自己 代码(改一下apikey模板号和号码及相应模板就能够实现信息发送)
// ConsoleApplication3.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <stdio.h>
#include <curl.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
//#include<stdafx.h>
#define bzero(a, b) memset(a, 0, b)
#pragma warning(disable:4996)
#define MAXPARAM 2048
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "wldap32.lib")
#pragma comment(lib, "crypt32.lib")
#pragma comment(lib, "advapi32.lib")
#pragma comment(lib, "libcurl_a_debug.lib")
#pragma comment(lib, "winmm.lib")
#pragma comment(lib, "Normaliz.lib")
#pragma execution_character_set("utf-8")
CURL* curl;
CURLcode res;
/*
bingone
本样例依赖libcurl库
下载地址 https://curl.haxx.se/download.html
*/
// 修改为您的apikey(https://www.yunpian.com)登录官网后获取
//char* apikey = "xxxxxxxxxxxxxxxx";
char* apikey = (char*)" ";
// 修改为您要发送的手机号
char* mobile = (char*)"157070 ";
// 设置您要发送的内容
char* text = (char*)"【云片网】您的验证码是1234,5分钟内有效。";
// 指定发送的模板id
int tpl_id = 3569052;
// 指定发送模板内容
char* tpl_data[4] = { (char*)"#name#",(char*)" ",(char*)"#code#",(char*)" " };
// 发送语音验证码内容
int code = 1234;
// 获取user信息url
char* url_get_user = (char*)"https://sms.yunpian.com/v2/user/get.json";
// 智能模板发送短信url
char* url_send_sms = (char*)"https://sms.yunpian.com/v2/sms/single_send.json";
// 指定模板发送短信url
char* url_tpl_sms = (char*)"https://sms.yunpian.com/v2/sms/tpl_single_send.json";
// 发送语音验证码短信url
char* url_send_voice = (char*)"https://voice.yunpian.com/v2/voice/send.json";
void send_data(char* url, char* data)
{
// specify the url
curl_easy_setopt(curl, CURLOPT_URL, url);
// specify the POST data
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
// get response data
curl_easy_perform(curl);
printf(" ");
}
//查账户信息
void get_user(char* apikey)
{
char params[MAXPARAM + 1];
char* cp = params;
sprintf(params, "apikey=%s", apikey);
send_data(url_get_user, params);
}
// 使用智能匹配模板接口发短信
void send_sms(char* apikey, char* mobile, char* text)
{
char params[MAXPARAM + 1];
char* cp = params;
sprintf(params, "apikey=%s&mobile=%s&text=%s", apikey, mobile, text);
send_data(url_send_sms, params);
}
// 指定模板单发
void send_tpl_sms(char* apikey, char* mobile, int tpl_id, char* tpl_value)
{
char params[MAXPARAM + 1];
char* cp = params;
sprintf(params, "apikey=%s&mobile=%s&tpl_id=%d&tpl_value=%s", apikey, mobile,
tpl_id, tpl_value);
send_data(url_tpl_sms, params);
}
//发送语音验证码
void send_voice(char* apikey, char* mobile, int code)
{
char params[MAXPARAM + 1];
char* cp = params;
sprintf(params, "apikey=%s&mobile=%s&code=%d", apikey, mobile, code);
send_data(url_send_voice, params);
}
int main(void)
{
curl = curl_easy_init();
mobile = curl_easy_escape(curl, mobile, strlen(mobile));
if (NULL == curl) {
perror("curl open fail ");
}
// 获取用户信息
get_user(apikey);
// 发送短信
send_sms(apikey, mobile, text);
// 发送语音验证码
send_voice(apikey, mobile, code);
char* tmp;
char* tpl_value = (char*)malloc(sizeof(char) * 500);
//bzero(tpl_value, sizeof(char) * 500);
memset(tpl_value, 0, sizeof(char) * 500);
// 模板短信发送需要编码两次,第一次URL编码转换
int len = 0;
tmp = curl_easy_escape(curl, tpl_data[0], strlen(tpl_data[0]));
memcpy(tpl_value + len, tmp, strlen(tmp));
len += strlen(tmp);
tpl_value[len++] = '=';
tmp = curl_easy_escape(curl, tpl_data[1], strlen(tpl_data[1]));
memcpy(tpl_value + len, tmp, strlen(tmp));
len += strlen(tmp);
tpl_value[len++] = '&';
tmp = curl_easy_escape(curl, tpl_data[2], strlen(tpl_data[2]));
memcpy(tpl_value + len, tmp, strlen(tmp));
len += strlen(tmp);
tpl_value[len++] = '=';
tmp = curl_easy_escape(curl, tpl_data[3], strlen(tpl_data[3]));
memcpy(tpl_value + len, tmp, strlen(tmp));
len += strlen(tmp);
tmp = tpl_value;
// 第二次URL编码
tpl_value = curl_easy_escape(curl, tpl_value, strlen(tpl_value));
send_tpl_sms(apikey, mobile, tpl_id, tpl_value);
free(tmp);
curl_easy_cleanup(curl);
return 0;
}
上一篇:openssl下载编译
下一篇:没有了!