VB.NET2010 下HTTP代理浏览网页的实现

来源:互联网 发布:傲剑九阳神功升级数据 编辑:程序博客网 时间:2024/05/16 07:39
         我在学习代理的时候发现了很多种人写的代理 当然有通讯用的有网页用的单位和办公室一般都使用HTTP代理因此我在总结其他人的代理的时候发现很多人都是C语言要不就是2005老版本的VB.NET语言写的要不就是把别人的文章整个拷贝过来也不进行实际的检查,很多别人写的代码在调试上都有一些小错误,学习起来很头疼,我吧代码简单整理了下用的是VB.NET2010语言的格式 希望对看后的人有一些帮助,少走一些弯路吧。笔记弯路走多了会大小编程爱好者的积极性。

         以下是模块代码:

Imports System.Runtime.InteropServicesImports System.NetImports System.Net.SocketsImports System.Net.WebClientImports WindowsApplication1.SockProxyModule 代理设置函数    Public Const INTERNET_OPTION_TYPE_PROXY = 38    Public Const INTERNET_OPEN_TYPE_PROXY = 3    Public Const INTERNET_OPTION_SETTINGS_CHANGED = 39    '调用API函数    <DllImport("wininet.dll", SetLastError:=True)> _    Public Function InternetSetOption(ByVal hInternet As IntPtr, ByVal dwOption As Integer, ByVal lpBuffer As IntPtr, ByVal lpdwBufferLength As Integer) As Boolean    '窗口调用请把上面代码替换为下面的这行代码,或直接将Public  与 Function 中间加一个Shared 就可以在窗体重使用了 在模块中就用上面的代码'很多网上给的API函数都是VB6或VB2005用的 在2010就不能正常调用了
'Public Shared Function InternetSetOption(ByVal hInternet As IntPtr, ByVal dwOption As Integer, ByVal lpBuffer As IntPtr, ByVal lpdwBufferLength As Integer) As Boolean    End Function
    Structure INTERNET_PROXY_INFO        Public dwAccessType As Integer        Public proxy As IntPtr        Public proxyBypass As IntPtr    End Structure    Public Sub SetProxy(ByVal StrProxy As String)        Dim _IP As INTERNET_PROXY_INFO        _IP.dwAccessType = INTERNET_OPEN_TYPE_PROXY        _IP.proxy = Marshal.StringToHGlobalAnsi(StrProxy)        _IP.proxyBypass = Marshal.StringToHGlobalAnsi("local")        Dim Inpt As IntPtr = Marshal.AllocCoTaskMem(Marshal.SizeOf(_IP))        Marshal.StructureToPtr(_IP, Inpt, True)        InternetSetOption(IntPtr.Zero, INTERNET_OPTION_TYPE_PROXY, Inpt, Marshal.SizeOf(_IP))    End SubEnd Module


下面是调试代码:

SetProxy("10.2.2.3:8080")  ’HTTP代理WebBrowser1.Navigate("http://www.163.com")   ' 正确代理WEB
原创粉丝点击