// 密钥参数
const char* SECRET_ID = "AKID*******"; //cloud provider define
const char* SECRET_KEY = "oNg*******"; //cloud provider define
const char* testPhone2 = "+86133*******2"; //test value 2
const char* testVcode2 = "520520"; //test value 2
char *resp = NULL;
//1)new private parameter, private parameter are used by private callback func
struct defaultHeadParam *smsHead = smsHeadParamNew();
struct smsBodyParam *smsBody = smsBodyParamNew();
//2)new cloud api
struct cloudApi *smsApi = cloudApiNew();
if(!smsHead || !smsBody || !smsApi) return ERR_NOMEM;
//3)set cloud api id and key
cloudApiSecretSet(smsApi, SECRET_ID, SECRET_KEY);
//4)set private parameter and callback func
cloudApiHttpBodyInit(smsApi, smsBody, smsHttpBody);
cloudApiHttpHeadInit(smsApi, smsHead, defaultHttpSignatureHead);
//5)http post and return reply
resp = cloudApiHttpPost(smsApi);
//6)use reply value, do not need free it in you code
//just a demo, you can use cjson to handle resp here
if(resp){
printf("%s\n", "resp1-----------------------");
printf("%s\n\n", resp);
}
//for test 2
//7)renew http body parameter demo(your private define if needed)
smsBodyPhoneVcodeRenew(smsBody, testPhone2, testVcode2);
//8)http post and return reply
resp = cloudApiHttpPost(smsApi);
if(resp){
printf("%s\n", "resp2-----------------------");
printf("%s\n\n", resp);
}
//9)release
smsHeadParamFree(smsHead);
smsBodyParamFree(smsBody);
cloudApiFree(smsApi);
return ERR_SUCCESS;
libcurl,版本不低于7.45.0:https://curl.haxx.se/download/curl-7.45.0.tar.bz2
gethostbyname阻塞分析 https://www.jianshu.com/p/4c21e1f58f6e
PolarSSL