带有代理的VB.net HttpWebRequest

带有代理的VB.net HttpWebRequest,vb.net,proxy,httpwebrequest,httpwebresponse,Vb.net,Proxy,Httpwebrequest,Httpwebresponse,我的代码在我不使用代理的情况下工作,但我希望使用代理,以便在发送请求时不会显示我的真实IP。每当我尝试运行我的程序时,它都会给我一个错误,说“远程服务器返回了一个错误:(417)预期失败。”并且它指向“response=CType(request.GetResponse(),HttpWebResponse)”。我的代码有问题吗?我现在真的很困惑。任何帮助都可以,谢谢 Dim myProxy As New WebProxy("173.234.249.68", 8800)

我的代码在我不使用代理的情况下工作,但我希望使用代理,以便在发送请求时不会显示我的真实IP。每当我尝试运行我的程序时,它都会给我一个错误,说“远程服务器返回了一个错误:(417)预期失败。”并且它指向“response=CType(request.GetResponse(),HttpWebResponse)”。我的代码有问题吗?我现在真的很困惑。任何帮助都可以,谢谢

            Dim myProxy As New WebProxy("173.234.249.68", 8800)
            Dim request As HttpWebRequest
            Dim response As HttpWebResponse
            Dim tempCookies As New CookieContainer
            request = CType(WebRequest.Create("http://samplewebsite.com"), HttpWebRequest)
            request.Proxy = myProxy
            request.ContentType = "application/x-www-form-urlencoded"
            request.ContentLength = POST.Length
            request.KeepAlive = True
            request.CookieContainer = tempCookies

            response = CType(request.GetResponse(), HttpWebResponse)
            tempCookies.Add(response.Cookies)
            response.Close()
_
私有共享函数InternetSetOption(ByVal hInternet作为IntPtr,ByVal dwOption作为Integer,ByVal lpBuffer作为IntPtr,ByVal lpdwBufferLength作为Integer)作为布尔值
端函数
公共结构结构结构互联网代理信息
作为整数的公共dwAccessType
作为IntPtr的公共代理
作为IntPtr的公共代理旁路
端部结构
专用子UseProxy(ByVal strProxy作为字符串)
常量INTERNET\u选项\u代理为整数=38
Const INTERNET\u OPEN\u TYPE\u代理为整数=3
Dim结构IPI作为结构INTERNET代理信息
struct_IPI.dwAccessType=INTERNET_OPEN_TYPE_PROXY
struct_IPI.proxy=Marshal.StringToHGlobalAnsi(strProxy)
struct_IPI.proxyBypass=Marshal.StringToHGlobalAnsi(“本地”)
Dim INTPTRSSTRUCT As IntPtr=Marshal.allocTaskMem(Marshal.SizeOf(struct_IPI))
Marshal.StructureToPtr(struct_IPI,intptrStruct,True)
Dim iReturn As Boolean=InternetSetOption(IntPtr.Zero、INTERNET\u OPTION\u PROXY、intptrStruct、System.Runtime.InteropServices.Marshal.SizeOf(struct\u IPI))
端接头
私有子按钮1\u单击(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理按钮1。单击
Label4.Text=(TextBox1.Text&“:”&TextBox2.Text)
端接头
私有子按钮2\u单击(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理按钮2。单击
UseProxy(Label4.Text)
WebBrowser1.导航(TextBox3.Text)
端接头
末级

_
私有共享函数InternetSetOption(ByVal hInternet作为IntPtr,ByVal dwOption作为Integer,ByVal lpBuffer作为IntPtr,ByVal lpdwBufferLength作为Integer)作为布尔值
端函数
公共结构结构结构互联网代理信息
作为整数的公共dwAccessType
作为IntPtr的公共代理
作为IntPtr的公共代理旁路
端部结构
专用子UseProxy(ByVal strProxy作为字符串)
常量INTERNET\u选项\u代理为整数=38
Const INTERNET\u OPEN\u TYPE\u代理为整数=3
Dim结构IPI作为结构INTERNET代理信息
struct_IPI.dwAccessType=INTERNET_OPEN_TYPE_PROXY
struct_IPI.proxy=Marshal.StringToHGlobalAnsi(strProxy)
struct_IPI.proxyBypass=Marshal.StringToHGlobalAnsi(“本地”)
Dim INTPTRSSTRUCT As IntPtr=Marshal.allocTaskMem(Marshal.SizeOf(struct_IPI))
Marshal.StructureToPtr(struct_IPI,intptrStruct,True)
Dim iReturn As Boolean=InternetSetOption(IntPtr.Zero、INTERNET\u OPTION\u PROXY、intptrStruct、System.Runtime.InteropServices.Marshal.SizeOf(struct\u IPI))
端接头
私有子按钮1\u单击(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理按钮1。单击
Label4.Text=(TextBox1.Text&“:”&TextBox2.Text)
端接头
私有子按钮2\u单击(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理按钮2。单击
UseProxy(Label4.Text)
WebBrowser1.导航(TextBox3.Text)
端接头
末级

控制线路:

Dim myProxy As New WebProxy("173.234.249.68", 8800)

卡赫纳线:

Dim myProxy As New WebProxy("173.234.249.68", 8800)


我的代理声明有问题吗?我的代理声明有问题吗?你能解释一下你的代码是如何工作的吗?这将使OP和其他人能够理解并在其他地方应用您的方法(如果适用)。仅适用于代码的答案可删除。-你能解释一下你的代码是如何工作的吗?这将使OP和其他人能够理解并在其他地方应用您的方法(如果适用)。只有代码的答案是可删除的-
Dim myProxy As New WebProxy("173.234.249.68", 8800)
Dim myProxy As New WebProxy("173.234.249.68:8800")