1. libcurl 和 jsoncpp库的准备
- libcurl
官网获取最新,一定注意最新的是在github,使用最新的
然后解压后进入curl-7.65.0\projects\Windows 选择对应版本编译使用就可以了。
note:
- 我在VS里面用静态库没问题,在Qt里面使用静态库有问题,用动态库就没问题。
- 需要配合系统的lib使用。该文件在系统路径下也有的,对应版本路径为:
libs:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib
dlls:
C:\Windows\SysWOW64
C:\Windows\System32
最后贴上自己编译的VC12/VC14版本所有的
- jsoncpp
JSONCPP 也务必去github 获取
https://github.com/open-source-parsers/jsoncpp
我自己在网上搜的实在是一言难尽,编译还要改MTD,改完了编译好了的库我又使用不了,最后甚至直接使用源码做了,后来想想不对劲儿,就去搜了搜,就是这版了。
解压之后使用CMAKE 构建工程,然后使用对应编译器编译就可以了。我编译好的VS2015的版本也放着了
2.测试使用
测试参考了
https://blog.youkuaiyun.com/z550449054/article/details/78683976
感谢!
获取鉴权代码:
bool Upload::getToken()
{
std::string token_ret;
CURL *curl;
CURLcode res;
std::string url;
//HTTP报文头
struct curl_slist* headers = NULL;
url=m_url_token+"?account="+m_account+"&password="+m_password;
curl = curl_easy_init();
if (curl)
{
//设置url
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, data_callback);//设置回调函数
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &token_ret);//设置写数据
res = curl_easy_perform(curl);//执行
curl_slist_free_all(headers); /* free the list again */
/* always cleanup */
curl_easy_cleanup(curl);
}
if (res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
return false;
}
else
{
// 开始获取json中的access token项目
Json::Reader reader;
Json::Value roo