zoukankan      html  css  js  c++  java
  • 在WebBrowser中发送POST请求

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

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

    新建一个工程,部件中勾选中 “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

    Sub getWeb()
     
        Dim As XMLHTTP
        tmpth = "c: emp.htm"
        URL = "http://www.baidu.com/"
        Set X = New XMLHTTP
        X.Open "GET", URL, False
        X.send
        s = X.responseText
        ss = "<body"
        arr = Split(s, ss)
        ss = ss & arr(1)
        If Dir(tmpth) <> "" Then Kill tmpth
     
        Open tmpth For Output As 1
        Print #1, , ss
        Close 1
        WebBrowser1.Navigate2 tmpth
        Set bd = WebBrowser1.Document.body
        Do While bd Is Nothing
            DoEvents
            Set bd = WebBrowser1.Document.body
        Loop
        SendKeys "c:aidu.htm"
        SendKeys "{ENTER}"
        WebBrowser1.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_PROMPTUSER
        Kill tmpth
    End Sub
  • 相关阅读:
    51Nod 2006 飞行员配对(二分图最大匹配)-匈牙利算法
    51Nod 1212无向图最小生成树
    51Nod 1081前缀和
    51Nod 1118 机器人走方格--求逆元
    Java四种线程池的使用
    java常用的几种线程池比较
    一名3年工作经验的程序员应该具备的技能(写得很好,果断转)
    《深入理解mybatis原理》 MyBatis的架构设计以及实例分析
    javadoc
    java 反射机制 观点
  • 原文地址:https://www.cnblogs.com/lbnnbs/p/4784635.html
Copyright © 2011-2022 走看看