INET控件的几点使用

环境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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值