下载curl包 https://curl.se/download.html(网上有很多下载最新版本的就行)
我的资源里有我用的版本
会得到两个压缩文件,解压后
把文件里的 curl 文件夹 和两个curl链接库添加到项目文件里
添加 libcurl.lib 资源
项目添加现有项目,添加文件里的curl.h 文件
添加#include “curl/curl.h” 头文件
然后看代码
//UTF82WCS转CString
CString UTF82WCS(const char* szU8)
{
//预转换,得到所需空间的大小;
int wcsLen = ::MultiByteToWideChar(CP_UTF8, NULL, szU8, strlen(szU8), NULL, 0);
//分配空间要给' '留个空间,MultiByteToWideChar不会给' '空间
wchar_t* wszString = new wchar_t[wcsLen + 1];
//转换
::MultiByteToWideChar(CP_UTF8, NULL, szU8, strlen(szU8), wszString, wcsLen);
//最后加上' '
wszString[wcsLen] = ' ';
CString unicodeString(wszString);
delete[] wszString;
wszString = NULL;
return unicodeString;
}
//传入url和参数,return的就是返回值
CString m_Post::SendCurl(std::string url,std::string admintoken)
{
string response = "";
CURL* curl;
CURLcode res;
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "http");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_mime* mime;
curl_mimepart* part;
mime = curl_mime_init(curl);
part = curl_mime_addpart(mime);
curl_mime_name(part, "admintoken");
curl_mime_data(part, admintoken.c_str(), CURL_ZERO_TERMINATED);//传入的是字符串的话可能要转为UTF8服务器才能识别,不然传入的可能是(null)
part = curl_mime_addpart(mime);
curl_easy_setopt(curl, CURLOPT_MIMEPOST, mime);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &getUrlResponse);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
res = curl_easy_perform(curl);
curl_mime_free(mime);
}
curl_easy_cleanup(curl);
CString Cjson = UTF82WCS(response.c_str());//UTF8编码转CString
return Cjson;
}
没有传成功看一下res的值,
如果是60,这是因为没有安装引用协议什么的
加上这行就好
curl_easy_setopt(curl, CURLOPT_CAINFO, "./cacert.pem");
pem文件我的资源里面有



