【问题标题】:Proxies With HTTPWebRequest and Post带有 HTTPWebRequest 和 Post 的代理
【发布时间】:2011-02-16 06:06:52
【问题描述】:

我正在尝试将代理与 HTTPWebRequets 一起使用,在我尝试发布数据之前它工作得很好。由于某种原因,它一直超时。附件是我用于网络请求的类。有人可以请教。

Imports System.IO

导入 System.Net

公共类 EasyHttp 公共枚举 HTTPMethod 简称 HTTP_GET = 0 HTTP_POST = 1 结束枚举 公共代理作为字符串 公共端口为整数 公共 UseProxy 作为整数 = 0 公共子新() '没有 Args 构造函数 结束子

Public Function Send(ByVal URL As String, _
    Optional ByVal PostData As String = "", _
    Optional ByVal Method As String = "", _
    Optional ByVal ContentType As String = "")


    Dim request As HttpWebRequest
    request = WebRequest.Create(URL)

    request.ServicePoint.Expect100Continue = False

    Dim Response As HttpWebResponse

    Dim SW As StreamWriter
    Dim SR As StreamReader
    Dim ResponseData As String

    If UseProxy = 1 Then
        request.Proxy = New WebProxy(Proxy, Port)

    End If

    ' Prepare Request Object
    request.Method = Method

    ' Set form/post content-type if necessary
    If (Method = "POST" AndAlso PostData <> "" AndAlso ContentType = "") Then
        ContentType = "application/x-www-form-urlencoded"
    End If

    ' Set Content-Type
    If (ContentType <> "") Then
        request.ContentType = ContentType
        request.ContentLength = PostData.Length
    End If

    ' Send Request, If Request
    If (Method = "POST") Then
        ' Try
        SW = New StreamWriter(request.GetRequestStream())
        SW.Write(PostData)
        ' Catch Ex As Exception
        'Throw Ex
        ' Finally
        'SW.Close()
        '  End Try
    End If

    ' Receive Response
    '  Try
    Response = request.GetResponse()
    SR = New StreamReader(Response.GetResponseStream())
    ResponseData = SR.ReadToEnd()
    '  Catch Wex As System.Net.WebException
    '    SR = New StreamReader(Wex.Response.GetResponseStream())
    '     ResponseData = SR.ReadToEnd()
    '     Throw New Exception(ResponseData)
    '  Finally
    '     SR.Close()
    '  End Try

    Return ResponseData
End Function

结束类

【问题讨论】:

    标签: vb.net webrequest


    【解决方案1】:
    Imports System.Text
    
    Imports System.Net
    
    Function Post(ByVal Site As String, ByVal Data As String, ByVal Proxy As String, ByVal UserAgent As String)
        Dim responseData As String = ""
        Try
            Dim request As Net.HttpWebRequest = Net.WebRequest.Create(Site)
            Dim myProxy As New WebProxy(Proxy)
            request.Proxy = myProxy
            request.Accept = "*/*"
            request.AllowAutoRedirect = True
            request.UserAgent = UserAgent
            request.Timeout = 60000
            request.Method = "POST"
            If request.Method = "POST" Then
                request.ContentType = "application/x-www-form-urlencoded"
                Dim encoding As New ASCIIEncoding()
                Dim postByteArray() As Byte = encoding.GetBytes(Data)
                request.ContentLength = postByteArray.Length
                Dim postStream As IO.Stream = request.GetRequestStream()
                postStream.Write(postByteArray, 0, postByteArray.Length)
                postStream.Close()
            End If
            Dim response As Net.HttpWebResponse = request.GetResponse()
            If response.StatusCode = Net.HttpStatusCode.OK Then
                Dim responseStream As IO.StreamReader = _
                  New IO.StreamReader(response.GetResponseStream())
                responseData = responseStream.ReadToEnd()
            End If
            response.Close()
        Catch e As Exception
            responseData = "An error occurred: " & e.Message
        End Try
        Post = responseData
    End Function
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-27
      • 1970-01-01
      • 2011-04-20
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 2012-10-12
      • 1970-01-01
      相关资源
      最近更新 更多