我们要用到的也是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. Linux Mint 18.1安装nvidia驱动

    硬件环境:Dell Inspiron 7557笔记本(i7,8G,GTX960M) 软件环境:Linux Mint 18.1(基于Ubuntu 16.04) 问题描述: Linux Mint 18.1 ...

  2. bzoj-3195-状压dp

    3195: [Jxoi2012]奇怪的道路 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 600  Solved: 395[Submit][Statu ...

  3. zoj-3329-期望/dp/方程优化

    One Person Game Time Limit: 1 Second      Memory Limit: 32768 KB      Special Judge There is a very ...

  4. 数据库 update select 多列操作

    最常用的update语法是:  UPDATE <table_name>  SET <column_name1> = <value>, SET <column_ ...

  5. Bayes' theorem (贝叶斯定理)

    前言 AI时代的到来一下子让人感觉到数学知识有些捉襟见肘,为了不被这个时代淘汰,我们需要不断的学习再学习.其中最常见的就是贝叶斯定理,这个定理最早由托马斯·贝叶斯提出. 贝叶斯方法的诞生源于他生前为解 ...

  6. Sizzle源码分析:三 筛选和编译

    好了有了之前的词法分析过程,现在我们来到select函数来,这个函数的整体流程,前面也大概说过: 1. 先做词法分析获得token列表 2. 如果有种子集合直接到编译过程 3. 如果没有种子集合并且是 ...

  7. Custom Ribbon in SharePoint 2010 & which not wrok when migrate from 2010 to 2013

    博客地址 http://blog.csdn.net/foxdave 1. First of all, let me show you the ribbon modal in our project w ...

  8. Centos 中扩展 软件源 的安装 之 Remi ( 为yum 扩展软件源 )

    平时一般都是使用Ubuntu的,最近用起来Centos 发现软件安装方便不是很方便,   在安装过程中接触到了这么一个概念,  就是为yum 安装 扩展源,  这里下面要说的就是其中的  Remi  ...

  9. Android filesystem system rw(read/write) permission

    /********************************************************************************* * Android filesys ...

  10. TCP拥塞控制机制

     研究TCP的拥塞机制,不仅仅是想了解TCP如何的精巧,更多的是领悟其设计思想,即在一般情况下,我们该怎样处理问题.   一.拥塞的发生与其不可避免    拥塞发生的主要原因:在于网络能够提供的资源不 ...