zoukankan      html  css  js  c++  java
  • CSDN_VB自动登陆网络站点详解(四):在WebBrowser中发送POST请求

    本来这一部分内容也应该放在第二章,但一方面为了醒目,另一方面,这种方法实际上与Internet Explorer对象有很大的联系及相似性,所以特意将之放在Internet Explorer对象之后介绍。

     

    现在我们要用到的也是WebBrowser的“Navigate”方法,其函数原型如下所示:

    Sub Navigate(URL As String, [Flags], [TargetFrameName], [PostData], [Headers])

     

    大家不妨与第三章中Internet Explorer对象的“Navigate”方法比较一下,一模一样,原来是同一个接口!!

    新建一个工程,部件中勾选中 Microsoft Internet Controls”,添加一个WebBrowser1、一个Command1在窗体上,可以把WebBrowser1适当拉大一点,Form1中添加以下代码:

          Private Sub Command1_Click()

          ReDim aByte(0) As Byte ' Array of bytes to hold data to post

          cPostData = "login_name=帐号&password=密码&cookietime=0&x=42&y=10"

          PackBytes aByte(), cPostData

          Dim vPost As Variant

          vPost = aByte ' Assign the byte array to a VARIANT

          Dim vHeaders As Variant

          vHeaders = "Content-Type: application/x-www-form-urlencoded" + Chr(10) + Chr(13)

          WebBrowser1.Navigate "http://www.csdn.net/member/logon.asp", , , vPost, vHeaders

          End Sub

          Private Sub PackBytes(ByteArray() As Byte, ByVal PostData As String)

          iNewBytes = Len(PostData) - 1   ' Get rid of the null termination

          If iNewBytes < 0 Then

           Exit Sub

          End If

          ReDim ByteArray(iNewBytes)

          For i = 0 To iNewBytes

           ch = Mid(PostData, i + 1, 1)

           If ch = Space(1) Then

              ch = "+"

           End If

           Debug.Print ch, Asc(ch)

           ByteArray(i) = Asc(ch)

          Next

        End Sub

    (请参考第三章中的代码。)

    通过这四篇文章的介绍,我想读者一定不光是对VB登陆Web服务器有了更深的认识,而且同时对HTTP协议、CookieSession也加深了理解!

    全文完!!!

  • 相关阅读:
    台州 OJ 3847 Mowing the Lawn 线性DP 单调队列
    洛谷 OJ P1417 烹调方案 01背包
    快速幂取模
    台州 OJ 2649 More is better 并查集
    UVa 1640
    UVa 11971
    UVa 10900
    UVa 11346
    UVa 10288
    UVa 1639
  • 原文地址:https://www.cnblogs.com/Fooo/p/802815.html
Copyright © 2011-2022 走看看