原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/2019/0915/642.html
//在常州平台运营数据头设置 Content-Type application/octet-stream 否则可能会默许由于有字符 & 形成无法正确传输;
// 设置音讯头
curl_slist *header = NULL;
header = curl_slist_append(header, "Content-Type:application/octet-stream" );
最后记得
curl_slist_free_all(header);
以下是运用流程
//回调函数
void write_func(char *ptr,size_t size,size_t nmemb,void *userdata)
{
std::string& buffer = *(std::string*)userdata;
size_t len = size*nmemb;
for(size_t i = 0;i<len;++i)
{
buffer += *ptr;
++ptr;
}
}
// https 恳求
int https_post_test(const char* strUrl,uint8_t * szPost,int dataSize,const char * pCaPath)
{
int ret = -1;
CURL * curl=NULL;
CURLcode res;
std::string res_buf = "";
// 设置音讯头
curl_slist *header = NULL;
header = curl_slist_append( m_header, "Content-Type:application/octet-stream" );
curl = curl_easy_init(); //初始化
if(curl&&strUrl)
{
curl_easy_setopt(curl,CURLOPT_URL,strUrl); //设置常州微信公众平台url地址
curl_easy_setopt( curl, CURLOPT_HTTPHEADER, header ); // Header
curl_easy_setopt( curl, CURLOPT_REFERER, "nginx" );
curl_easy_setopt(curl, CURLOPT_VERBOSE, 0);
if(szPost)
{
curl_easy_setopt(curl,CURLOPT_POSTFIELDS, szPost); // POST 的数据内容
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, dataSize); // POST的数据长度
}
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1L);
curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,write_func); //设置回调函数
curl_easy_setopt(curl,CURLOPT_WRITEDATA,&res_buf); //设置写数据
char error[1024];
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, error);
//接纳数据时超时设置,假如2秒内数据未接纳完,直接退出
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 2);
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 2);
if(NULL == pCaPath)
{
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false);//设定常州微信小程序开发为不考证证书和HOST
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, false);
}
else
{
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, true);
curl_easy_setopt(curl, CURLOPT_CAINFO, pCaPath);
}
res = curl_easy_perform(curl); //执行
if(res == CURLE_OK)
{
} else
{
LOGE(TAG,"curl error %d",res);
ret = -1;
}
curl_easy_cleanup(curl);
curl_slist_free_all(header);
} else
{
ret =-1;
}
return ret;
}
上篇:上一篇:c++运用curl库发送https
下篇:下一篇:织梦dedecms文章页加转载链接的办法