INET控件的几点使用

本文介绍在VB6+WINXP环境下,利用Microsoft Internet Transfer Controls进行网络操作。包括获取页面信息、判断文件是否存在、判断网络连接并保存网页源码,还给出查找网站名次工具的代码,同时指出OpenURL方法使用、时间转换及返回代码判断等方面存在的问题。

环境VB6+WINXP

打开VB6,新建工程

添加部件Microsoft Internet Transfer Controls.

form中添加2个按钮,2个文本框和Inet控件

代码如下:

 

Option Explicit

'这段代码使用了GetHeader来返回页面信息,比较准确一些

'可以得到文件最后修改日期,文件大小等等

'用这个办法还可以判断一个文件是否存在

Private Sub Command1_Click()

Dim a As String

Dim str As String

Dim RetCode As Long

Inet1.OpenURL "http://localhost/xml/tt.htm"

 

If Inet1.StillExecuting Then

       DoEvents

End If

'可以看到所有的项目

MsgBox Inet1.GetHeader

 

'得到修改日期时间是格林时间,将它转换北京时间

str = Inet1.GetHeader("Last-modified")

str = Replace(Right(str, Len(str) - InStr(1, str, ",") - 1), "GMT", "")

Text1.Text = CDate(Format(str, "yyyy/mm/dd  hh:mm:ss"))

 

MsgBox Inet1.GetHeader("content-length")

RetCode = Val(Mid(Trim(Inet1.GetHeader), 10, 3))

    Select Case RetCode

    Case 200

        MsgBox "成功"

    Case 404

        MsgBox "没有发现"

    Case Else

        MsgBox "Error"

    End Select

End Sub

 

'这段代码简单的判断了是否与internet连接

'如果连接,得到网页源码并且保存

Private Sub Command2_Click()

Inet1.Cancel

If Len(Inet1.OpenURL("http://localhost/xml/tt.htm")) <> 0 Then

    MsgBox "已经连接"

    Text2.Text = Inet1.OpenURL("http://localhost/xml/tt.htm")

    If Inet1.StillExecuting Then

       DoEvents

    End If

    '保存到文件

    Open App.Path & "/index.htm" For Output As #1

        Print #1, Text2.Text

    Close #1

Else

    MsgBox "没有连接"

End If

End Sub.

老兵出了个 查找网站名次的工具 偶想他肯定就是在某某网站查的 于是用WSockExpert抓包 得到了那个网站 发现他是通过http://data.alexa.com/data?cli=10&dat=snba&url=网站地址
这样来查的 于是用VB很简单就写了这么个工具

先加入INET控件 这个在执行后是不显示的 想放哪都行 然后
Private Sub Command1_Click()
webstr = Inet1.OpenURL("http://data.alexa.com/data?cli=10&dat=snba&url=" & Text1.Text)
webnum1 = InStr(webstr, "POPULARITY")
webnum1 = InStr(webnum1, webstr, "TEXT") + 6
webnum2 = InStr(webnum1, webstr, "/>") - 1
web1 = Mid(webstr, webnum1, (webnum2 - webnum1))
Text2 = web1
End Sub

这样就把 TEXT="624891" /> 中的 624891显示在text2.text中了
测试一下 没错呵呵 自己写个专用 虽然不怎么好看 但是功能和他的一样 自己也是可以美化的~

ps:
指出几点问题:)
1.
=============================================
OpenURL 方法是同步传输 所以没有必要
If Inet1.StillExecuting Then
DoEvents
End If
附:MSDN上关于同步异步的说明
同步和异步传输
OpenURL 方法以同步方式传输数据。在这里,同步指的是传输操作未完成之前,不能执行其它过程。这样数据传输就必须在执行其它代码之前完成。

而 Execute 方法以异步方式传输数据。在调用 Execute 方法时,传输操作与其它过程无关。这样,在调用 Execute 方法后,在后台接收数据的同时,即可同时执行其它代码。

对 Internet Transfer 控件的使用者来说这意味着什么?简单地说,用 OpenURL 方法能够直接得到可保存到磁盘的数据流(如上所述),或者直接在 TextBox 控件中阅览(如果数据是文本格式的)。从另一方面说,如果用 Execute 方法获取数据,则必须用 StateChanged 事件监视该控件的连接状态。当达到适当的状态时,调用 GetChunk 方法从控件的缓冲区获取数据。下面更详细地讨论这一操作。
===========================================
2.
===========================================
您并没有将GMT转成北京时间 只是作了格式转换
===========================================
3.根据返回代码 判断不一定总是有效 是和具体的Web服务器有关 不同的服务器返回不同 至少我在JRUN WEB SERVER上试过 就算你请求一个不存在的文件,也返回200,
===========================================
MsgBox Inet1.GetHeader("content-length")
RetCode = Val(Mid(Trim(Inet1.GetHeader), 10, 3))
Select Case RetCode
Case 200
MsgBox "成功"
Case 404
MsgBox "没有发现"
Case Else
MsgBox "Error"
End Select
End Sub

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值