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

}

相关推荐
潜创微科技13 小时前
潜创微科技|沁恒微电子 (WCH) 官方授权代理商&方案商 一站式国产接口芯片解决方案
科技·嵌入式硬件
森利威尔电子-13 小时前
森利威尔 SL3037B 替换HT7463A/HT7463B 5.5-60V宽压 峰值 0.6A
单片机·嵌入式硬件·物联网·集成电路·芯片
蜡笔小马13 小时前
13.C++设计模式-策略模式
c++·设计模式·策略模式
计算机安禾13 小时前
【c++面向对象编程】第36篇:析构函数应永远不抛出异常——原因与最佳实践
开发语言·c++
济61713 小时前
ROS开发专栏---创建软件包 和编写第一个节点---适配Ubuntu 22.04
嵌入式·ros2·机器人方向
fengfuyao98514 小时前
STM32 TIM8 两路互补PWM带死区控制程序
网络·stm32·嵌入式硬件
ゆづき14 小时前
假如编程语言们有外号
java·c语言·c++·python·学习·c#·生活
REDcker1 天前
有限状态机与状态模式详解 FSM建模Java状态模式与C++表驱动模板实践
java·c++·状态模式
basketball6161 天前
C++ 构造函数完全指南:从入门到进阶
java·开发语言·c++
Jason_zhao_MR1 天前
RK3576 MIPI Camera ISP调试:主观调优与工程实战(下)
stm32·嵌入式硬件·安全·系统架构·嵌入式