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

}

相关推荐
Mr YiRan5 分钟前
C++面向对象继承与操作符重载
开发语言·c++·算法
LCG元3 小时前
STM32MP1边缘网关:Linux系统下Modbus转MQTT协议转换实战
linux·stm32·嵌入式硬件
额,不知道写啥。6 小时前
HAO的线段树(中(上))
数据结构·c++·算法
LYS_06186 小时前
C++学习(5)(函数 指针 引用)
java·c++·算法
Max_uuc6 小时前
【硬件心法】打破软硬边界:从原理图剖析探秘“微安级”精密电流采样的底层架构
单片机·嵌入式硬件
ADDDDDD_Trouvaille7 小时前
2026.2.21——OJ95-97题
c++·算法
Once_day8 小时前
C++之《程序员自我修养》读书总结(4)
c语言·c++·编译和链接
2501_918126919 小时前
stm32核心板是什么属性?
linux·c语言·stm32·嵌入式硬件·个人开发
tod1139 小时前
C++核心知识点全解析(二)
开发语言·c++·面试经验
古译汉书9 小时前
RTOS:ISR与互斥量的关系
运维·服务器·stm32·嵌入式硬件