一、开始之前
因为C++网络编程不太熟悉,并且工作量有些大,所以在开始之前需要验证PHP服务端可行,使用Python进行验证,参考:http://www.jianshu.com/p/5fbec0c863f9,之后进行C++编程
二、C++访问HTTP库的选择
libcurl、WinINet、 WinHTTP。
libcurl跨平台;WinINet、 WinHTTP都是微软提供的API,WinHTTP比WinINet更加安全和健壮,可以这么认为WinHTTP是WinINet的升级版本。使用Windows开发,优先使用Windows自带的库,网上搜一下,很多都是WinINet的,所以就WinINet。
三、代码
对HTTP、TCP、IP的联系参考计算机网络层次:http://blog.csdn.net/gavin_john/article/details/53186570
对HTTP、Socket的联系参考:http://blog.csdn.net/zeng622peng/article/details/5546384,简而言之,一个长连接一个短连接
InternetOpenA //初始化Wininet并创建一个HTTP连接
InternetConnectA //请求与网站连接
HttpOpenRequestA //向网站服务器发送请求页面
HttpSendRequestA //向网站服务器发送请求HTTP协议和POST请求数据
InternetReadFile //获取HTTP响应消息
四、完整代码参考
C++通过HTTP请求Get或Post方式请求Json数据:https://www.cnblogs.com/shike8080/p/6549339.html
C++通过Wininet库提交POST信息登录到PHPChina中文开发者社区:http://blog.csdn.net/bjbz_cxy/article/details/77602559
C++编程笔记:使用WinHTTP实现HTTP访问(解决接收UTF8数据乱码问题):http://blog.csdn.net/elaine_bao/article/details/51754882