internetopen 函数是干嘛的?一篇文章让你搞懂它的用法!

吉云

今天得空,就想着自己动手搞搞网络请求这块儿,想写个小程序,能自个儿从网上抓点简单的文本信息下来。一开始没多想,以为直接就能调用啥函数去访问网址。

结果一上手就懵,直接上来就想打开个网址根本不行,系统不认。查半天才明白,得先走个流程,用一个叫 InternetOpen 的东西打头阵。感觉就像是你要进别人家门,总得先敲敲门,告诉人家你是谁?

摸索过程

internetopen 函数是干嘛的?一篇文章让你搞懂它的用法!

我看看这个 InternetOpen 函数,发现它需要你提供一些信息。主要是这几块:

  • 你这个程序叫啥名字:就是那个用户代理(User Agent)字符串。我理解就是,你得告诉对方服务器,是谁在访问它。我就随便写个自己程序的名字,比如 "MyLittleDownloader/1.0"。
  • 你怎么访问网络:是直接连接,还是通过代理服务器?这个得根据自己的网络环境来。我这边是直接连的,就用对应的设置。
  • 代理服务器信息:如果上面选用代理,这里就得提供代理服务器的地址和端口号。我没用代理,这块就直接设成空。
  • 一些行为标志:比如是不是异步访问之类的。我刚开始搞,就用最简单的同步方式。
  • internetopen 函数是干嘛的?一篇文章让你搞懂它的用法!

把这些参数按照说明准备然后就去调用这个 InternetOpen 函数。心里还有点小紧张,不知道能不能成功。

拿到“通行证”

试一下,还真行!调用成功后,它给我返回一个东西,文档里叫它“句柄”(Handle)。对我来说,这玩意儿就像是一个“通行证”或者说是一个“会话凭证”。

这个句柄非常关键。它代表我这个程序和网络功能之间的一个连接会话。后续所有跟网络相关的操作,比如真正去打开一个网址(用 InternetOpenUrl 之类的函数),或者连接 FTP 服务器啥的,都得带着这个“通行证”才行。系统通过这个句柄,才知道是哪个程序在进行网络操作,以及这回会话的一些基本设置。

感觉它就像是你要上网前,得先跟系统说一声‘我要上网,这是我的身份’,系统检查通过,给你发个许可牌牌(就是这个句柄),然后你拿着这个牌牌,才能去进行具体的上网动作,比如浏览网页、下载文件等等。

internetopen 函数是干嘛的?一篇文章让你搞懂它的用法!

收尾工作

用完网络功能,程序退出前,还得记得把这个“通行证”给还回去。就是调用对应的关闭函数(比如 InternetCloseHandle),告诉系统:“我用完,你可以回收资源”。这就像借东西得有借有还,好习惯嘛

这个 InternetOpen 就是用 Windows 自带的网络功能(WinINet 库)的第一道门槛,负责初始化,建立一个基本的网络会话环境。虽然代码调用本身不复杂,就是传几个参数,但理解它的作用挺重要的,它是后续所有网络操作的基础。少这一步,后面啥也干不成。今天算是把这第一步给踩实,后面就可以拿着这个“通行证”,去尝试真正访问网络资源。

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]