十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
嘿嘿,试试下面这个api
创新互联主要从事网站建设、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务安仁,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
Private Const INTERNET_COOKIE_HTTPONLY As Integer = H2000
SuppressUnmanagedCodeSecurity, SecurityCritical, DllImport("wininet.dll", EntryPoint:="InternetGetCookieExW", SetLastError:=True, ExactSpelling:=True)
Friend Function InternetGetCookieEx([In] Url As String, [In] cookieName As String, Out cookieData As StringBuilder, [In], Out ByRef pchCookieData As UInteger, flags As UInteger, reserved As IntPtr) As Boolean
End Function
''' summary
''' 获取webbrowser登录成功后的cookie,需要带上登录成功后的URL
''' /summary
''' param name="url"/param
''' returns/returns
SecurityCritical()
Public Function GetCookie(url As String) As String
Dim size As UInteger = 0
Dim sb As New StringBuilder
If InternetGetCookieEx(url, vbNullString, Nothing, size, INTERNET_COOKIE_HTTPONLY, IntPtr.Zero) Then '-- this always returns false
If size = 0 Then
Return Nothing
End If
sb = New StringBuilder(Convert.ToInt32(size) + 1)
If Not InternetGetCookieEx(url, vbNullString, sb, size, INTERNET_COOKIE_HTTPONLY, IntPtr.Zero) Then
Return Nothing
End If
End If
Dim lastErrorCode = Marshal.GetLastWin32Error '-- 259
Return sb.ToString()
End Function
另外,再给你一个函数
''' summary
''' 字符串型的cookie转换成cookie型的cookiecollection
''' /summary
''' param name="cookieStr"/param
''' param name="cookie"/param
''' param name="domain"/param
Public Sub StringToCookie(ByVal cookieStr As String, ByRef cookie As CookieContainer, ByVal domain As String)
cookie = New CookieContainer()
Debug.Print($"过程:{New StackTrace().GetFrame(0).GetMethod.Name} 转换cookie开始")
Try
Dim cookstr As String() = cookieStr.Split(";"c)
Dim cookieName As String = ""
Dim cookieValue As String = ""
For Each str As String In cookstr
cookieName = str.Substring(0, InStr(str, "=") - 1).Trim()
cookieValue = str.Substring(InStr(str, "="), str.Length - InStr(str, "=")).Trim()
Dim ck As New Cookie(cookieName, cookieValue)
'Debug.Print($"{cookieName} = {cookieValue}")
ck.Domain = domain
cookie.Add(ck)
Next
Debug.Print($"过程:{New StackTrace().GetFrame(0).GetMethod.Name} 转换cookie成功")
Catch ex As Exception
Debug.Print($"过程:{New StackTrace().GetFrame(0).GetMethod.Name} {ex.StackTrace.ToString()}")
Finally
Debug.Print($"过程:{New StackTrace().GetFrame(0).GetMethod.Name} 转换cookie结束")
End Try
End Sub
vb.net的MSDN都在微软的网站上,因为微软每天都在更新MSDN的内容,当然也有离线版,不过容量太大(10多G),不建议安装,如果要装的话,请参考:
msdn文档在网页上有,浏览器打开就可以看到了。如果想看某个类库的介绍的话,直接在网址后面加上完整命名空间,比如就行了