整个过程大概是这样的:发送http请求报文到服务器,报文的数据体中带有账号密码;服务器接受处理后返回响应报文;根据响应报文的状态码判断登录是否成功,通过读取返回报文的首部行获取所需的信息。我这里是通过Location获取返回的cookie信息,用webBroswer登录时加载cookie即可。
大致的代码如下:
// strUrl:登录检测的地址;postData:发送的账号密码字符串(如:name==xxx&password=xxx);strCookie:获取的cookie字符串
int Login(const CString& strUrl, const CString& postData, CString& strCookie)
{
//检测网路状态
if (!InternetCheckConnection(strUrl, FLAG_ICC_FORCE_CONNECTION, 0))
{
return -1;
}
//加载Wininet函数
HINTERNET hInternet = InternetOpen(_T("HTTP Request..."), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
if (hInternet == NULL)
{
InternetCloseHandle(hInternet);
return 0;
}
//解析出主机和uri地址<