18,356
社区成员
发帖
与我相关
我的任务
分享
CInternetSession session;
DWORD dwServiceType = AFX_INET_SERVICE_HTTPS;
CHttpConnection* pServer = NULL;
CHttpFile* pFile = NULL;
CString strServerName ;
CString strObject;
INTERNET_PORT nPort;
AfxParseURL("https://passport.csdn.net/account/login", dwServiceType, strServerName, strObject, nPort);
CString strHeaders =_T("Accept: */*\r\n\r\n");
pServer=session.GetHttpConnection(strServerName, INTERNET_FLAG_SECURE, nPort);
pFile = pServer->OpenRequest(_T("CHttpConnection::HTTP_VERB_GET"),strObject, NULL,1, NULL, NULL, INTERNET_FLAG_SECURE);
pFile->SendRequest (strHeaders);
DWORD dwStatusCode;
DWORD dwBuffer=sizeof(dwStatusCode);
pFile->QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &dwStatusCode, &dwBuffer);
CString str;
str.Format("%d", dwStatusCode);
AfxMessageBox(str);
if (dwStatusCode>=200&&dwStatusCode<300) //程序能成功读到状态码200
{
//本想获取登陆界面,结果打印出来的html文件显示如下图“500服务器暂时无响应”
//并且用QueryInfo()请求了响应消息头,结果根本得不到服务器响应。
CString fuck;
FILE *fp;
fp=fopen("1.html", "w+");
char *a;
while (pFile->ReadString(fuck))
{
//AfxMessageBox(fuck);
a=(char *)fuck.GetBuffer(0);
fwrite(a, strlen(a), 1, fp);
}
fclose(fp);
}
pFile->Close();
pServer->Close();
if (pFile != NULL)
delete pFile;
if (pServer != NULL)
delete pServer;
session.Close();