\qquad
学了一些MFC,现在又要开始学习libcurl了。
1.关于libcurl的编译,网上很多的博客可以参考,但是大多都有问题。哈哈哈,实验个那么几次就行了。几乎每次装环境都会遇到很多的问题,然后都需要重来好几次。哈哈哈。这个的逻辑是先把libcurl给编译了,然后作为一个动态链接库或者是静态链接库放入自己写的程序中。
2.其实关于MFC里面加入网络等相关的东西,MFC也有自己封装的类,但是使用MFC自带的,移植性不好。网上大多推荐的libcurl,我们总监推荐的也是这个。
3.这篇文章解救我于水深火热之中啊。可以使用Visual Studio自带的NuGet包管理工具,添加curl就行。不用那么麻烦去编译。。。
4.Visual Studio高版本如果想使用低版本的平台工具集,直接在官网下一个低版本的installer,然后安装只选择工具集部分的组件安装就好了。装好之后,打开Visual Studio高版本的,项目-属性-里面的平台工具集就可以看到新安装的低版本的工具集了。
5.还要学Json.一篇讲解jsoncpp的文章关于安装jsoncpp,我依然使用的是VS提供的NuGet包管理工具。
6.想把请求的数据先返回显示出来吗?这篇文章写了方法。 docs里面分别提供了返回文件存储和暂时存在内存里面两种方法。
7.string类型转char*
可以直接使用c_str()
函数。并且转完之后的char*
类型的变量可以直接用strlen()
函数求出长度,去了末尾的‘\0’的长度。关于char字符串与string的比较文章。
8.Visual Studio里面的项目-属性里面的东西要好好的研究研究,很多时候加东西啊,改东西啊,都是在这里面弄。
9.curl的官网经常出故障,但是下载下来的文件里面东西很多。里面的docs-examples文件夹里面有很多的例子,比如POST请求,自定义HTTP头等。很直观了,可以直接用这里的例子来改。实现自己的需求,不过学习curl还是需要学一下HTTP的相关知识,尤其是HTTP头里面的东西。
10.一个常规的POST操作可能会涉及curl_easy_setopt()函数的如下几个参数。
CURLOPT_POSTFIELDSIZE
CURLOPT_POSTFIELDSIZE_LARGE
CURLOPT_POSTFIELDS
CURLOPT_COPYPOSTFIELDS
CURLOPT_HTTPHEADER
11.Windows下网络编程我当时看到的两个不错的网站。2
12.回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。百度百科的解释
13.关于json对象和json字符串等相关知识。
关于jsoncpp相关的知识。
14.将返回的json字符串存入文件。
将返回的json字符串存入文件
部分地方没注释,部分地方可能需要稍作修改。
15.jsoncpp基础知识练习:
int main() {
const std::string jsonstring1 = "{\"Result\":true,\"Message\":\"\",\"MsgCode\":\"200\",\"Data\":{\"UserID\":10044,\"UserNumber\":null,\"RealName\":null,\"EnterpriseID\":0}}";
Json::Reader reader;
Json::Value rootObj;
reader.parse(jsonstring1,rootObj);
std::cout << rootObj.toStyledString() << std::endl;
return 0;
}
效果如下: