您的位置:首页 > 理论基础 > 计算机网络

vb.net自动发帖器二(httpwebrequest实现)

2014-10-15 15:35 399 查看
vb.net自动发帖器二(httpwebrequest实现)

www.MyException.Cn,网友分享于:2012-09-04 14:19:30 浏览:187次



0

vb.net自动发帖器2(httpwebrequest实现)

vb.net自动发帖器2(httpwebrequest实现)

2011年01月25日

  用HttpWebRequest类做论坛快速发帖器

    用HttpWebRequest类做论坛发贴机就简单多了。

    我们始终不能忘记,最好的教程是MSDN,在Microsoft Visual Studio .NET 2003“搜索”中敲入HttpWebRequest,抄来一些东东(事实上许多教程书籍都是从MSDN上抄的):

     命名空间: System.Net

     HttpWebRequest 类对 WebRequest 中定义的属性和方法提供支持,也对使用户能够直接与使用 HTTP 的服务器交互的附加属性和方法提供支持。

     不要使用 HttpWebRequest 构造函数。使用 WebRequest.Create 方法初始化 HttpWebRequest 的一个新实例。如果 URI 的方案是 http://https:// ,则 Create 将返回 HttpWebRequest 实例。

     GetResponse 方法向 RequestUri 属性中指定的 Internet 资源发出同步请求并返回包含该响应的 HttpWebResponse 实例。可以使用 BeginGetResponse 和 EndGetResponse 方法对 Internet 资源发出异步请求。

     当要向 Internet 资源发送数据时, GetRequestStream 方法返回用于发送数据的 Stream 实例。  BeginGetRequestStream 和 EndGetRequestStream 方法提供对发送数据流的异步访问。  

     如果在访问 Internet 资源时发生错误,则 HttpWebRequest 类将引发 WebException 。 WebException.Status 属性是 WebExceptionStatus 值之一,它指示错误源。当 WebException.Status 为 WebExceptionStatus.ProtocolError 时, Response 属性包含从 Internet 资源接收的 HttpWebResponse 。

    

  Shared Sub postData()

    Dim httpUrl As New System.Uri("http://www.Tuenhai.com?" & "name=yourName&pass=yourPass&cardnumber=yourCardNumber")

    Dim req As HttpWebRequest

    'req.Timeout = 10000 '设置超时值10秒

    req = CType(WebRequest.Create(httpUrl2), HttpWebRequest)

    req.Method = "POST"

    req.ContentType = "application/x-www-form-urlencoded"

    Dim bytesData() As Byte =   System.Text.Encoding.ASCII.GetBytes(""name=yourName&pass=yourPass&cardnumber=yourCardNumber")

    req.ContentLength = bytesData.Length

    Dim postStream As Stream = req.GetRequestStream()

    postStream.Write(bytesData, 0, bytesData.Length)   '以上向服务器post信息。

    Dim res As HttpWebResponse = CType(req.GetResponse(), HttpWebResponse) '以下获取服务器返回信息

    Dim reader As StreamReader = _

    New StreamReader(res.GetResponseStream, System.Text.Encoding.GetEncoding("GB2312"))

    Dim respHTML As String = reader.ReadToEnd()

      MsgBox(respHTML)  '这就是向网络服务器post后返回的信息

      MsgBox(res.StatusCode.ToString)  '向网络服务器post后返回的状态码

    res.Close() '关闭

  End Sub

    用AxWebBrowser控件做论坛发贴机留有三个问题,用HttpWebRequest类来实现,后二个问题都不复存在。而且,用HttpWebRequest类来实现论坛发帖器的速度要快得多。但是,同样的?

    有的网站要填上识别码数字才能注册或发言,如何用“论坛自动发贴机”来实现自动识别识别码图片上的数字?

    我们在主过程里加上线程,因为我们以后要用多线程做自动发帖机啊。用多线程做论坛自动发贴器在VB6中不好实现,在VB.NET中做自动发帖工具却不难。

   

  Dim threadAdd As System.Threading.Thread '定义线程 

  Public Sub threadAutoAdd()

    threadAdd= New System.Threading.Thread(AddressOf postData)  '创建线程实例

    threadNetsh.Start()  '开始线程

    '别忘了在Sub postData()的最后加上threadAutoAdd.Abort()来关闭线程

    '或者在这里加上判断Sub postData()完毕的代码,如果完毕就关闭线程

  End Sub

    Visual Studio .NET 2003 是一个全面的开发工具,用于快速构建面向 Microsoft Windows? 和 Web 并连接 Microsoft .NET 的应用程序,是否极大地提高了我们的开发效率呢?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: