当前位置:编程学习 > VB >>

请教一下winsock怎么跟网页交互

请教一下winsock怎么跟网页交互,例如我的winsock向一个网页post用户名密码,winsock1_DataArrival返回登陆成功了,然后我想提取里面的cookie继续post另外的数据包到这个网页,这样要怎么写哦?谢谢各位大侠了 --------------------编程问答-------------------- 不要用Winsock,否则还得写HTTP协议。可以用Internet Transfer控件。 --------------------编程问答-------------------- webbrowser --------------------编程问答-------------------- 用XML --------------------编程问答--------------------
'〓〓〓〓〓〓〓〓〓〓GetUrlByXmlHttp函数相关定义声明等 Start
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function DeleteUrlCacheEntry Lib "Wininet.dll" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long
'删除缓存中文件
'〓〓〓〓〓〓〓〓〓〓GetUrlByXmlHttp函数相关定义声明等 End
'┏〓〓〓〓〓〓〓〓〓 GetUrlByXmlHttp,start 〓〓〓〓〓〓〓〓〓┓
'[详介]:
'函数注释:
'[简介]:
'XMLHTTP方式下载网页
Function GetUrlByXmlHttp(Url As String, Optional MaxTime As Long = 20000, Optional ShowErr As Boolean = True, Optional KillCache As Boolean = True) As String
   'VB源码,帮你写函数,帮你写代码,帮你写模块,帮你设计软件
   '--需要什么函数或功能,可以联系我。
   '版权所有,请保留作者信息.QQ:1085992075
   '如需商业用途请联系作者
   On Error GoTo Err
   Dim XmlHttp '  As xmlhttp
   If KillCache Then DeleteUrlCacheEntry Url
   Set XmlHttp = CreateObject("Microsoft.XMLHTTP") '//建立对象
   
   With XmlHttp
           .Open "GET", Url, True
           .send
           On Error Resume Next
           Dim Tick As Long
           Dim S As Integer
           Tick = GetTickCount
           While Not S = 200 And GetTickCount - Tick < MaxTime
               DoEvents
               Sleep 1
               S = .Status
           Wend
           
           If GetTickCount - Tick >= MaxTime And S <> 200 Then Exit Function
           GetUrlByXmlHttp = StrConv(.responseBody, vbUnicode)
   End With
   Set XmlHttp = Nothing '//释放
   
   Exit Function
   Err:
   If ShowErr Then MsgBox Err.Description & vbCrLf '获取错误信息,产生错误后,错误信息会放入vb.Err对象
   Err.Clear
End Function
'┗〓〓〓〓〓〓〓〓〓  GetUrlByXmlHttp,end  〓〓〓〓〓〓〓〓〓┛


xmlhttp中有cookie可以读出也可以写入,一般情况下不用理会COOKIE,除非退出时,那只要打开一下退出页面就好了
有谁知道怎么把登陆成功的XMLHTTP的状态设为未登陆呢?

清空COOKIE可能可以吧? --------------------编程问答--------------------
'〓〓〓〓〓〓〓〓〓〓GetUrlByXmlHttp函数相关定义声明等 Start
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function DeleteUrlCacheEntry Lib "Wininet.dll" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long
'删除缓存中文件
'〓〓〓〓〓〓〓〓〓〓GetUrlByXmlHttp函数相关定义声明等 End
'┏〓〓〓〓〓〓〓〓〓 GetUrlByXmlHttp,start 〓〓〓〓〓〓〓〓〓┓
'[详介]:
'函数注释:
'[简介]:
'XMLHTTP方式下载网页
Function GetUrlByXmlHttp(Url As String, Optional MaxTime As Long = 20000, Optional ShowErr As Boolean = True, Optional KillCache As Boolean = True) As String
   'VB源码,帮你写函数,帮你写代码,帮你写模块,帮你设计软件
   '--需要什么函数或功能,可以联系我。
   '版权所有,请保留作者信息.QQ:1085992075
   '如需商业用途请联系作者
   On Error GoTo Err
   Dim XmlHttp '  As xmlhttp
   If KillCache Then DeleteUrlCacheEntry Url
   Set XmlHttp = CreateObject("Microsoft.XMLHTTP") '//建立对象
   
   With XmlHttp
           .Open "GET", Url, True
           .send
           On Error Resume Next
           Dim Tick As Long
           Dim S As Integer
           Tick = GetTickCount
           While Not S = 200 And GetTickCount - Tick < MaxTime
               DoEvents
               Sleep 1
               S = .Status
           Wend
           
           If GetTickCount - Tick >= MaxTime And S <> 200 Then Exit Function
           GetUrlByXmlHttp = StrConv(.responseBody, vbUnicode)
   End With
   Set XmlHttp = Nothing '//释放
   
   Exit Function
   Err:
   If ShowErr Then MsgBox Err.Description & vbCrLf '获取错误信息,产生错误后,错误信息会放入vb.Err对象
   Err.Clear
End Function
'┗〓〓〓〓〓〓〓〓〓  GetUrlByXmlHttp,end  〓〓〓〓〓〓〓〓〓┛


xmlhttp中有cookie可以读出也可以写入,一般情况下不用理会COOKIE,除非退出时,那只要打开一下退出页面就好了
有谁知道怎么把登陆成功的XMLHTTP的状态设为未登陆呢?

清空COOKIE可能可以吧?
补充:VB ,  网络编程
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,