下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、InternetTransfer 控件实现了两种广泛使用的Internet协议:超文本传送协议(HyperTextTransfer Protocol)(HTTP) 和文件传送协议 ( File Transfer Protocol) (FTP)。使用 Internet Transfer 控件可以通过 OpenURL 或 Execute 方法连接到任何使用这两个协议的站点并检索文件。可能的用途在应用程序中添加FTP 浏览器。创建自动从公共FTP 站点下载文件的应用程序。分析World Wide Web站点中的图形引用,并只下载图形。提供以自定义格式显示从Web 页获得的动态数据。基本操作Inter
2、netTransfer 控件的功能依赖于将要使用的协议。由于所支持的两种协议工作起来不尽相同,所能够进行的操作就依赖于正在使用的协议。例如,GetHeader 方法只能用于HTTP(HTML 文档)协议。然而,有些过程对两个协议是通用的。最基本的,如果要使用任何一个协议,则必须:将 AccessType 属性设置为合法的代理服务器。用合法的 URL 调用 OpenURL 方法。用合法的URL 和协议支持的命令调用Execute 方法。用 GetChunk 方法从缓冲区获取数据。设置 AccessType 属性:使用代理服务器为了与Internet建立任何形式的连接,必须确定计算机如何连接到In
3、ternet上。如果在intranet上,可能需要提供代理服务器才能连接到Internet上。简单地说,代理服务器是计算机和Internet之间的媒介。intranet上所有需要连接到Internet上的计算机,都必须通过代理服务器。代理行使intranet和 Internet之间的防火墙功能,能够阻止非法的最终用户和外部请求,也就保护了intranet不受破坏。要查找计算机中的代理设置值,请按照以下步骤执行:注意下面的步骤只能用于Windows 95 和 Windows NT(R) 4.0 系统。在计算机的 “任务栏 ”中,单击 “启动 ”。在“设置 ”项中,单击 “控制面板 ”。双击 “I
4、nternet 图”标。在“Internet 属性 ”对话框中,单击“连接 ”。在“代理服务器 ”中,确认选中了“通过代理服务器连接”复选框。如果选中了, 则单击 “设置 ”。在该对话框中可以找到能够用于多种协议的代理服务器的名称。如果没有定义代理服务器,请与系统管理员联系,以获得可用的代理服务器。如果希望使用对话框中未列出的代理服务器,可将AccessType 属性设置为icNamedProxy(2)。然后将Proxy 属性设置为代理服务器的名称,如下面的代码所示:Inet1.Proxy = "myProxyName"Inet1.AccessType = icNamedP
5、roxy另一方面,如果希望使用缺省代理服务器(由计算机的注册表决定),则可以忽略Proxy 属性,而只需将AccessType 设置为icUseDefault (0)。AccessType 的设置值在下表中列出:常数值描述icUseDefault 0 (缺省)用作缺省。控件使用注册表中的缺省设置访问Internet 。icDirect 1 直接连接Internet 。该控件可直接连接到Internet 。icNamedProxy 2 命名的代理服务器。指示该控件使用Proxy 属性确定的代理服务器。调用OpenURL 方法设置完AccessType 属性后,最基本的操作就是用合法的URL 调用
6、OpenURL 方法。使用OpenURL 方法时, 操作所得到的结果将依赖于目标URL。例如下面的URL 将返回在中找到的HTML 文档:'名为 “ Text1的”TextBox 控件保存了'该方法的结果。Internet传输'控件的名称是 “ Inet1。”Text1.Text = Inet1.OpenURL("")作为结果, TextBox 控件保存了HTML 源码,它看上去应和下图显示的相似:在这种情况下,缺省操作返回的是URL 定位的HTML文本文件,则将获得实际的文件。例如,下面的代码:文档。然而,如果URL被改为指向Text1.Text
7、= Inet1. _OpenURL("")将获得文件的实际文本,如下所示:提示在使用OpenURL 或 Execute 方法时,不需要设置Protocol属性。Internet Transfer控件会自动按URL 的协议部分确定的协议来设置。最后,可以用包含附加数据的URL 调用OpenURL索数据库的能力。要搜索数据库,则需要在发送的用条件 “find=Maui 调”用名为 “search.exe的”搜索引擎。方法。例如,很多Web 站点提供了搜URL 中包含搜索条件。例如下面的代码Dim strURL As StringstrURL = _" xe?find=
8、mauiText1.Text = Inet1.OpenURL(strURL)如果搜索引擎找到了符合条件的内容,将合成一个HTML 文档并携带适当的信息返回。用 OpenURL 方法保存到文件如果需要将通过OpenURL 方法获取的数据保存到文件,可以使用句,如下面的代码所示。该示例先将获得的二进制文件传入Byte到磁盘中:Open、 Put 和 Close 数组,然后将该数据保存语Dim strURL As StringDim bData() As Byte '数据变量Dim intFile As Integer ' 可用文件变量strURL = _"/Softlib
9、.e xe"intFile = FreeFile() '将 intFile 设置为未使用的文件' OpenURL 方法的结果首先传入Byte数组,'然后将Byte 数组保存到磁盘。bData() = Inet1.OpenURL(strURL, icByteArray)Open "C:TempSoftlib.e xe" For Binary Access Write _As #intFilePut #intFile, , bData()Close #intFile可用类似的过程将文本文件写入磁盘中,不同的只是不再需要Byte数组了, 数据可以
10、直接保存到文件中:Dim strURL As String 'URL 字符串Dim intFile As Integer ' 可用文件变量IntFile = FreeFile()strURL = ""Open "c:tempMSsource.txt" For Output _As #IntFileWrite #IntFile, Inet1.OpenURL(strURL)Close #IntFile同步和异步传输OpenURL 方法以同步方式传输数据。在这里,同步指的是传输操作未完成之前,不能执行其它过程。这样数据传输就必须在执行其它代码之
11、前完成。而 Execute 方法以异步方式传输数据。 在调用 Execute 方法时,传输操作与其它过程无关。这样,在调用 Execute 方法后,在后台接收数据的同时,即可同时执行其它代码。对 Internet Transfer控件的使用者来说这意味着什么?简单地说,用OpenURL 方法能够直接得到可保存到磁盘的数据流(如上所述),或者直接在TextBox 控件中阅览(如果数据是文本格式的) 。从另一方面说,如果用Execute 方法获取数据,则必须用StateChanged 事件监视该控件的连接状态。当达到适当的状态时,调用GetChunk 方法从控件的缓冲区获取数据。下面更详细地讨论这
12、一操作。在 FPT 协议中使用Execute方法Executeoperation方法具有四个参数:url 、 operation 、 data 和requestHeaders 。 FTP 操作只用到了参数和url 参数,其中后者是可选的。例如,要从远程计算机中得到一个文件,可用下面的代码:Inet1.Execute "FTP:/", _"GET disclaimer.txt C:TempDisclaimer.txt"如果正在用FTP 从匿名FTP 服务器中获取文件, 就应熟悉在服务器目录树中漫游的特定命令,以及将其中文件获取到本地的硬盘中的命令。例如,要
13、用 FPT 协议改变目录,应使用带有希望改变到的目录路径的 “CD”命令。对绝大多数通用操作,如将文件传入服务器,以及从服务器获取文件,Execute 方法中使用了(与FTP)相同或相近的命令。例如,下面的代码将Execute 方法的参数以改变路径:Internet 传输控件在 “ CD命”令作为'txtURL 文本框包含了要打开的路径。'txtRemotePath文本框包含了要改变到的路径。Inet1.Execute txtURL.Text, "CD " & txtRemotePath.Text注意在 Execute 方法中使用FTP 命令时,没有
14、用到data 和 requestHeaders 参数。所有的操作和它们的参数都在operation参数中作为字符串进行传递;参数之间用空格进行分隔。在下面的描述中,不要把“file1和”“file2项”与data 和 requestHeaders 参数搞混。FTP 操作的语法是:operationName file1 file2例如, 要获取文件, 在下面的代码中包含了操作的名称( “获取 ”),以及该操作所需的两个文件名:'得到名为 “ Disclaimer.txt的文件”,并将其复制到' C:TempDisclaimer.txt 。Inet1.Execute, _"
15、;GET Disclaimer.txt C:TempDisclaimer.txt"下表列出了该控件支持的FTP 命令:操作描述示例CD file1 改变目录。改变到由file1 指定的目录中。Execute , "CD docsmydocs"CDUP 改变到父目录。功能与“ CD .相同”。Execute , "CDUP"DELETE file1 删除由file1 指定的文件。Execute , "DELETE discard.txt"DIR file1 在由file1指定的目录中查找。如果没有指定file1目录,则查找当前
16、工作目录。使用GetChunk 方法返回数据。Execute , "DIR /mydocs"GET file1 file2 获取由 file1 指定的远程文件, 并创建由 file2 指定的新的本地文件。 Execute , _"GET getme.txt C:gotme.txt"MKDIR file1 创建由 file1 指定的目录。 是否能够成功地执行, 取决于用户在远程主机上的权限。 Execute , "MKDIR /myDir"PUT file1 file2将由file1指定的本地文件,复制到由file2指定的远程主机文件中
17、。Execute , _"PUT C:putme.txt /putme.txt"PWD 打印工作目录。返回当前目录的名称。用GetChunk 方法返回数据。Execute , "PWD"QUIT 结束当前连接。Execute , "QUIT"RECV file1 file2 与 GET 相同。Execute , _"RECV getme.txt C:gotme.txt"RENAME file1 file2 文件重命名。是否能够成功地执行,取决于用户在远程主机上的权限。Execute ,"RENAME ol
18、d.txt new.txt"RMDIR file1 删除目录。是否能够成功地执行,取决于用户在远程主机上的权限。Execute ,"RMDIR oldDir"SEND file1 将文件复制到 FTP 站点。(与 PUT 相同) Execute , _ "SEND C:putme.txt /putme.txt"SIZE file1 返回由file1指定文件的大小。Execute "SIZE /largefile.txt"重点如果代理服务器是CERN 代理服务器, 就不允许使用直接的FTP 连接(使用Execute方法)。在这
19、种情况下, 要获得文件, 则需使用带Open、Put 和 Close 语句的OpenURL 方法,就象前面 “用 OpenURL 方法保存到文件”提到的那样。还可以用OpenURL 方法得到目录列表,即将目标目录作为URL,并调用该方法。在 HTTP 协议上使用 Execute 方法HTTP 协议允许客户机用 GET、 HEAD、 POST 和 PUT 命令向服务器请求数据。下表中列出了这些操作:操作描述示例GET 获取url 中命名的文件。Execute "" & _"/default.htm", "GET"HEAD 只获取
20、URL 属性中命名的文件的文件标头。Execute , "HEAD"POST 提供附加数据,以支持向远程主机的请求。Execute , "POST", strFormDataPUT 替换指定的URL 中的数据。Execute , "PUT", "replace.htm"通用网关接口和Execute 方法很多World Wide Web 站点提供了搜索数据库的能力。它是通过口 (CGI) 发送查询的能力完成的。HTTP协议用通用网关接在这里不再讨论CGI 了。然而,如果对CGI 比较了解, 就可用Execute 方法
21、构造一个应用程序模拟World Wide Web站点的行为。 例如,下面的代码给出了典型的CGI查询字符串:xe?find=Hangzhou如下所示,用Execute方法也可以发送同样的查询:Dim strURL As String, strFormData As StringstrURL = "/ xe"strFormData = "find=Hangzhou"Inet1.E xecute strURL, "POST", strFormData如果希望得到从服务器发回的结果(如上面的示例所示)取作为结果的HTML 文档。,就必须使用
22、GetChunk方法以获在 State 事件中使用GetChunk 方法在从远程计算机下载数据时,将建立异步连接。例如,在Execute 方法中使用 “获取 ”操作,将 使 服 务 器 获 取 请 求 的 文 件 。 当 获 取 了 整 个 文 件 之 后 , State参 数 将 返 回icResponseCompleted (12)。在这时候,就可以用 GetChunk 方法从缓冲区中获取数据了。下面的示例中给出了这种情况:Private Sub Inet1_StateChanged(ByVal State As Integer)Dim vtData As Variant ' 数据
23、变量。Select Case State'.没有给出其它情况。Case icResponseCompleted '12'打开文件用于写入。Open txtOperation For Binary Access _Write As #intFile'得到第一个大块。注意:指定Byte' (icByteArray) 以获取二进制文件。vtData = Inet1.GetChunk(1024, icString)数组Do While LenB(vtData) > 0Put #intFile, , vtData'得到下一大块。vtData = Inet1.GetChunk(1024, icString)LoopPut #intFile, , vtDataClose #
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年太阳能光伏发电效率报告及未来五至十年碳中和报告
- 2026年中国科学院东北地理与农业生态研究所寒区大豆育种学科组招聘备考题库及1套完整答案详解
- 2026年中国船舶集团有限公司综合技术经济研究院招聘备考题库完整参考答案详解
- 2026年大连市公安局面向社会公开招聘警务辅助人员348人备考题库完整答案详解
- 2025年教育科技行业创新模式与市场拓展报告
- 2026年中国有色桂林矿产地质研究院有限公司招聘备考题库及答案详解一套
- 2026年威海市检察机关公开招聘聘用制书记员31人备考题库及一套参考答案详解
- 2026年·长影集团招聘备考题库及一套答案详解
- 2025年泰和县新睿人力资源服务有限公司面向社会公开招聘项目制工作人员的备考题库有答案详解
- 2026年公安部第一研究所公开招聘预报名公安部第一研究所备考题库及完整答案详解1套
- 浙江省嵊州市2025-2026学年高二上数学期末质量检测试题含解析
- 湖北省宜昌市秭归县2026届物理八年级第一学期期末学业水平测试模拟试题含解析
- 案场物业管理评估汇报
- 重庆水利安全员c证考试题库和及答案解析
- 【基于微信小程序的书籍共享平台的设计与实现14000字】
- 基金从业内部考试及答案解析
- 2025秋期版国开电大本科《理工英语4》一平台综合测试形考任务在线形考试题及答案
- 简易混凝土地坪施工方案
- 酒店水电改造工程方案(3篇)
- GB/T 23987.3-2025色漆和清漆实验室光源曝露方法第3部分:荧光紫外灯
- DBJT15-147-2018 建筑智能工程施工、检测与验收规范
评论
0/150
提交评论