使用wininet下载一个网页

WinInet基础知识 | Microsoft Learn

//this code excerpt also demonstrates try/catch exception handling

#include <afxinet.h>

void DisplayHttpPage(LPCTSTR pszServerName, LPCTSTR pszFileName)

{

CInternetSession session(_T("My Session")); //用于建立一个网络连接

CHttpConnection* pServer = NULL; //用于管理上面建立的网络连接

CHttpFile* pFile = NULL; //用于读取或者储存文件包括本地

try

{

CString strServerName;

INTERNET_PORT nPort = 80;

DWORD dwRet = 0;

pServer = session.GetHttpConnection(pszServerName, nPort); //这个就是常规用法即:

//CHttpConnectionObj=session.GetHttpConnection();

//后面这2个函数一起作用用于打开服务器上面的文件或者本地的文件

pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_GET, pszFileName);

pFile->SendRequest();

pFile->QueryInfoStatusCode(dwRet);

if (dwRet == HTTP_STATUS_OK)

{

CHAR szBuff[1024];

while (pFile->Read(szBuff, 1024) > 0)

{

printf_s("%1023s", szBuff);

}

}

delete pFile;

delete pServer;

}

catch (CInternetException* pEx)

{

//catch errors from WinInet

TCHAR pszError[64];

pEx->GetErrorMessage(pszError, 64);

_tprintf_s(_T("%63s"), pszError);

}

session.Close();

}

相关推荐
hele_two8 分钟前
快速幂算法
c++·python·算法
OopspoO32 分钟前
C++杂记——Name Mangling
c++
yuanmenghao33 分钟前
车载Linux 系统问题定位方法论与实战系列 - 车载 Linux 平台问题定位规范
linux·运维·服务器·网络·c++
小羊羊Python36 分钟前
SoundMaze v1.0.1正式发布!
开发语言·c++
eewj2 小时前
STM32中FCLK时钟信号的作用
stm32·单片机·嵌入式硬件
淘晶驰AK2 小时前
ESP32和STM32哪个更容易学?
stm32·单片机·嵌入式硬件
__万波__3 小时前
STM32L475实现精度更好的delay函数
stm32·单片机·嵌入式硬件
码小猿的CPP工坊4 小时前
C++软件开发之内存泄漏闭坑方法
开发语言·c++
Benny_Tang4 小时前
题解:CF2164C Dungeon
c++·算法
青小莫5 小时前
C语言vsC++中的动态内存管理(内含底层实现讲解!)
java·c语言·c++