用CInternetSession实现HTTP POST登录
2016-04-30 23:42
519 查看
最近,在编码时发现,原来使用第三方类库实现的HTTP登录验证对Session的处理不是很理想,于是在网上搜集了一些资料,尝试用CInternetSession实现HTTP POST登录验证,代码如下:
CString strResultStr;
CInternetSession session;
CHttpConnection *pConnection;
CHttpFile *pFile;
BOOL retFlag;
CString strUserName = "jackongxp@163.com";
CString strPassword = "666666";
//与服务器建立连接
pConnection = session.GetHttpConnection( "www.XXXXX.com" );
CString strHeaders, tempStr;
strHeaders = _T("Content-Type: application/x-www-form-urlencoded");
//登录页面为 www.XXXXX.com/Client/Login.aspx
pFile=pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, "/Client/Login.aspx?");
CString strUserinfo;
//在登录页面中主要有两个输入控件,为TextBoxUserName、TextBoxPassword,分别输入用户名和密码
strUserinfo.Format( "TextBoxUserName=%s&TextBoxPassword=%s", strUserName, strPassword );
BOOL result = pFile->SendRequest(
strHeaders,
(LPVOID)(LPCTSTR)strUserinfo, strUserinfo.GetLength() );
//将登录验证后服务器返回的信息放入strResultStr中
do
{
pFile->SetReadBufferSize(10*1024);
retFlag = pFile->ReadString(tempStr);
strResultStr += tempStr + "/n";
}while(retFlag != FALSE);
CString strResultStr;
CInternetSession session;
CHttpConnection *pConnection;
CHttpFile *pFile;
BOOL retFlag;
CString strUserName = "jackongxp@163.com";
CString strPassword = "666666";
//与服务器建立连接
pConnection = session.GetHttpConnection( "www.XXXXX.com" );
CString strHeaders, tempStr;
strHeaders = _T("Content-Type: application/x-www-form-urlencoded");
//登录页面为 www.XXXXX.com/Client/Login.aspx
pFile=pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, "/Client/Login.aspx?");
CString strUserinfo;
//在登录页面中主要有两个输入控件,为TextBoxUserName、TextBoxPassword,分别输入用户名和密码
strUserinfo.Format( "TextBoxUserName=%s&TextBoxPassword=%s", strUserName, strPassword );
BOOL result = pFile->SendRequest(
strHeaders,
(LPVOID)(LPCTSTR)strUserinfo, strUserinfo.GetLength() );
//将登录验证后服务器返回的信息放入strResultStr中
do
{
pFile->SetReadBufferSize(10*1024);
retFlag = pFile->ReadString(tempStr);
strResultStr += tempStr + "/n";
}while(retFlag != FALSE);
相关文章推荐
- 设计新的Android HTTP请求封装类
- Centos6.5的几种网络环境配置方法
- 校园网无法拨号的一些解决方案
- HTTP状态码
- HTTP状态码
- 物联网|无线传感器网络|IEEE 802.15.4|ZigBee|CC2530|Z-Stack
- Unix网络编程学习笔记(一)初步认识socket编程
- QTcpServer中的incomingConnection函数不执行
- 网络基本功:TCP拥塞控制机制
- 【BZOJ1834】【codevs1362】网络扩容,最大流+费用流
- 网络编程 -java
- libevent 构造httpServer
- OSI七层模型与TCP/IP模型
- Java网络编程的框架
- FastCGI+lighttpd开发之介绍和环境搭建
- 神经网络joone_engin模式识别示范,eclipse
- 浅谈TCP/IP协议栈(二)IP地址
- 神经网络/人工智能 开源库
- C# TCP 相关类与方法
- userAgent属性快速获取 浏览器用于 HTTP 请求的用户代理头的值快速获取