使用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();

}

相关推荐
点云SLAM5 分钟前
C++中string流知识详解和示例
开发语言·c++·istringstream·ostringstream·c++学习·stringstream·数据流操作
Moonnnn.3 小时前
【单片机期末】单片机系统设计
笔记·单片机·嵌入式硬件·学习
achene_ql8 小时前
select、poll、epoll 与 Reactor 模式
linux·服务器·网络·c++
c7_ln8 小时前
I2C 外设知识体系:从基础到 STM32 硬件实现
stm32·单片机·嵌入式硬件
SY师弟9 小时前
51单片机——计分器
c语言·c++·单片机·嵌入式硬件·51单片机·嵌入式
深圳市青牛科技实业有限公司 小芋圆10 小时前
GC1809:高性能音频接收与转换芯片
科技·单片机·嵌入式硬件·音视频·智能家居·新能源
豪斯有话说10 小时前
C++_哈希表
数据结构·c++·散列表
JXNL@11 小时前
STM32---外部32.768K晶振(LSE)无法起振问题
stm32·单片机·嵌入式硬件
real_metrix11 小时前
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
c++·迭代器·迭代器失效·erase
朝朝又沐沐11 小时前
基于算法竞赛的c++编程(18)string类细节问题
开发语言·c++·算法