我们要用到的也是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:\temp.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:\baidu.htm"
    SendKeys "{ENTER}"
    WebBrowser1.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_PROMPTUSER
    Kill tmpth
End Sub

在WebBrowser中发送POST请求的更多相关文章

  1. Vue中发送ajax请求——axios使用详解

    axios 基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 node.js 中使用 功能特性 在浏览器中发送 XMLHttpRequests 请求 在 node.js 中发送 htt ...

  2. 如何在WinForm中发送HTTP请求

    如何在WinForm中请求发送HTTP 手工发送HTTP请求主要是调用 System.Net的HttpWebResponse方法 手工发送HTTP的GET请 求: string strURL = &q ...

  3. iOS中发送HTTP请求的方案

    在iOS中,常见的发送HTTP请求的方案有 苹果原生(自带) NSURLConnection:用法简单,最古老最经典的一种方案 NSURLSession:功能比NSURLConnection更加强大, ...

  4. golang中发送http请求的几种常见情况

    整理一下golang中各种http的发送方式 方式一 使用http.Newrequest 先生成http.client -> 再生成 http.request -> 之后提交请求:clie ...

  5. rails中发送ajax请求

    最近在写一个blog系统练练手,遇到一个一个问题,用户添加评论的时候想发送ajax请求,但是rails里的ajax和Python中的不太一样,Python中的ajax是用js,jquery实现的和ra ...

  6. IE6—在链接click事件的响应函数中发送jsonp请求不生效

    $("#link").click(function(){     $.ajax({         type: 'GET',         dataType: 'jsonp', ...

  7. java中发送http请求的方法

    package org.jeecgframework.test.demo; import java.io.BufferedReader; import java.io.FileOutputStream ...

  8. python中发送post请求时,报错“Unrecognized token 'xxxx': was expecting ('true', 'false' or 'null')”

    解决办法: 如请求参数为 data={“user”=“aaa”,“pwd”=“123456”,sign=“00000000000000”} 需要将参数data先做处理,调用函数datas=datajs ...

  9. Js/Ajax中发送HttpPost请求调用WebService

    1) WebService中的方法 [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(Confo ...

随机推荐

  1. hihocoder1513

    https://hihocoder.com/problemset/problem/1513 五维偏序问题,直接bitset压位,复杂度O(n^2/32) (本来想写三维偏序,但是cdq不会只好写写五维 ...

  2. python 字符串、列表、字典相关内建方法

    """字符串相关内建方法""" # a = ["qwe", "name", "sex&qu ...

  3. vue2 简单的留言板

    没有写样式,只是写个功能 <template> <div class="headers"> <div class="form"&g ...

  4. linux 网络测试命令 长期更新

    一.网络测试命令 1.测试 网络连接 发送两包后停发 [oracle@hadoop ~]$ PING www.a.shifen.com (() bytes of data. bytes from tt ...

  5. 转载-LVS的三种工作模式

    来源地址:http://www.uml.org.cn/zjjs/201211124.asp 1.lvs简介         lvs是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立 ...

  6. Hadoop的概念、版本、发展史

    Hadoop是什么?Hadoop的起源Hadoop发展史Hadoop的四大特性(优点)Hadoop的版本如何选择Hadoop版本 Hadoop是什么? Hadoop: 适合大数据的分布式存储和计算平台 ...

  7. C#读写三菱Fx PLC 使用Fx 串口协议 读写Fx3U设备

    本文将使用一个Github开源的组件库技术来读写三菱 FX PLC,使用的是基于串口的实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 github地 ...

  8. boost 中文编码转换

    Lstring CHanderHttp::CircleDesc(Lint nCurCircle, Lint nMaxCircle,Lint usercount){ std::stringstream ...

  9. UML图 之 活动图 (汇总版)

    ============================================================ 摘自: https://blog.csdn.net/tigaoban/arti ...

  10. LG4777 【模板】扩展中国剩余定理(EXCRT)

    题意 题目描述 给定\(n\)组非负整数\(a_i, b_i\),求解关于\(x\)的方程组 \[\begin{cases} x \equiv b_1\ ({\rm mod}\ a_1) \\ x\e ...