`

在VC中WININET如何使用HTTP的POST方法

阅读更多

SUMMARY
To properly simulate a Form submission using WinInet, you need to send a header that indicates the proper Content-Type. For Forms, the proper Content-Type header is: Content-Type: application/x-www-form-urlencoded

MORE INFORMATION
In many cases, the server does not respond appropriately if a Content-Type is not specified. For example, the Active Server Pages component of IIS 3.0 actually checks this header specifically for 'application/x-www-form- urlencoded' before adding form variables to the "Request.Form" object. This MIME/Content-Type indicates that the data of the request is a list of URL- encoded form variables. URL-encoding means that space character (ASCII 32) is encoded as ' ', special character such '!' encoded in hexadecemal form as '!'.

Here is a snippet of code that uses the MFC WinInet classes to simulate a Form POST request:

Without MFC, the same code translates to straight SDK calls as follows:

// close any valid internet-handles

我这里有一段程序,用来在一个对话框里显示出一次http request的原始信息,不过使用Inet API做的,希望能有帮助。

==========================================

使用MFC示例如下:
首先设置m_strRequest请求字符串 eg."name=aaa&pass=bbb";
m_strServerName 服务器名称或者IP eg."www.yahoo.com"
m_strObjectName 请求文件位置 eg. "pub/aaa.asp"
请求的结果存放在m_strHtml中

1、获得WebBrowser Control的DWebBrowserEvents2::DocumentComplete事件
2、在DWebBrowserEvents2::DocumentComplete事件中根据IWebBrowser2::Document获得IHTMLDocument2
3、IHTMLDocument2::forms得到IHTMLElementCollection
4、在IHTMLElementCollection中根据name、tagName、ID得到指定的IHTMLElement
5、从IHTMLElement得到IHTMLFormElement
6、执行IHTMLFormElement::submit

分享到:
评论

相关推荐

    VC通过HttpGet和HttpPost方式与WebService通信,解析返回的Json

    在MFC程序中实现HttpGet和HttpPost通信,你需要使用WinInet库,这是Windows系统自带的一个网络编程接口。首先,你需要设置HTTP请求的基本信息,如URL、请求方法(GET或POST)、头信息等。然后,通过InternetOpen函数...

    Wininet—Http模拟POST发包登录.zip

    在IT行业中,网络编程是至关重要的一环,而HTTP协议作为互联网上应用最为广泛的一种网络协议,它的使用无处不在。本篇文章将详细讲解如何利用Windows API中的Wininet库来模拟HTTP POST请求,实现网络登录的功能,...

    Wininet实现网络检测

    在VC6.0这样的Visual C++开发环境中,利用Wininet库可以方便地创建应用程序进行网络连接和数据传输。本教程将详细介绍如何使用Wininet API进行网络检测。 首先,我们需要包含必要的头文件`#include <wininet.h>`,...

    VC通过Http协议Get或Post方式与WebService通信,解析返回的Json

    本资源是一个封装类,采用异步方式解决了Wininet不能设置超时的问题,当前异步采用C++11线程库及同步方式,可修改为MFC工作线程后在VS2012以下版本使用。JSON解析库采用JSONCPP。调用方式参考: CWininetHttp MyHttp...

    VC/VC++ WinInet实现文件下载

    在本场景中,"VC/VC++ WinInet实现文件下载"指的是使用VC++编程语言,通过WinInet库来编写程序,实现从互联网上下载文件的功能。 WinInet API为开发者提供了基础的网络通信接口,可以处理网络连接、数据传输和错误...

    VC编程实现使用WinInet通过HTTP协议读取网上文件

    在C++源代码中,引入`#include <wininet.h>`以使用WinInet API。同时,确保链接器设置中包含`libwininet.lib`库。 接下来,我们需要了解WinInet的基本工作流程。主要涉及以下步骤: 1. **初始化**: 使用`...

    VC_POST_FILE.rar_POST_php POST源码_post 服务端_vc post_vc++php

    2. **VC++网络编程**:掌握如何在VC++中使用WinInet或WinHttp库进行网络请求,尤其是POST请求的实现。 3. **PHP服务器端编程**:理解PHP接收POST数据的方式,例如通过`$_POST`全局变量,以及如何处理文件上传。 4. *...

    vc_get.zip_VC 网页_VC 获取网页_WinInet_网页内容_获取网页

    下面将详细解释这些关键步骤以及如何在VC++中使用WinInet获取网页内容。 1. **初始化会话**: 使用`InternetOpen`函数创建一个Internet会话句柄,该句柄用于管理所有的网络操作。这个函数需要提供用户代理字符串、...

    VC6.0实现POST和Get,调用后端WEBAPI接口_MFC版.rar

    HttpRequest.HttpPost("http://www.baidu.com/","",ret); ofstream OutFile("C:\\11111111111111.txt"); //利用构造函数创建txt文本,并且打开该文本 OutFile (); //把字符串内容,写入Test.txt文件 OutFile....

    the-vc-_post_http-file-upload.rar_VC post上传文件_http post 上传_post

    在本场景中,我们关注的是使用VC++通过HTTP POST方法实现文件上传的技术。标题和描述提示了我们要讨论的重点,即如何在Visual C++环境下利用HTTP协议的POST请求上传文件。以下是对这个主题的详细解释: 首先,理解...

    VC++ HTTP POST/GET/PUT/DELETE实现Rest API操作

    在本文中,我们将深入探讨如何使用VC++实现HTTP的基本操作,包括POST、GET、PUT和DELETE,以及如何处理代理设置、读取HTTP头信息和解析HTML文档中的特定标签属性值。这些功能对于开发RESTful API客户端或者进行网络...

    VC++ HTTP Get Post请求

    在VC++中实现POST请求,除了使用WinInet库外,还需要设置请求头以指定POST方法和内容类型。下面是一个简单的示例: ```cpp HINTERNET hRequest = HttpOpenRequest(hConnect, "POST", "/submit", NULL, NULL, NULL, ...

    基于WinInet实现HTTP文件上传小程序

    把基于WinInet的HTTP文件上传功能小程序的开发过程首先,使用 InternetCrackUrl 函数分解URL,从URL中提取网站的域名、路径以及URL的附加信息等。关于 InternetCrackUrl 分解URL的介绍和实现,可以参考 “URL分解之...

    VC通过Http协议Get或Post方式与WebService通信,解析返回的Json.zip

    总结来说,这个项目教你如何在C++环境中使用Wininet库进行HTTP通信,同时解析返回的JSON数据。这在现代网络应用开发中是至关重要的技能,因为它允许客户端应用程序与Web服务进行交互,获取和更新远程数据。掌握这些...

    WinInet下载显示进度条

    在子线程中,我们需在下载过程中调用`PostMessage`或`SendMessage`向主线程发送消息,主线程接收到消息后更新进度条。 具体实现时,可以定义一个结构体存储下载的文件信息,如URL、已下载的字节数、总字节数等。在...

    VCHttpPost

    通过以上内容,我们了解到在VC++中实现POST请求涉及的知识点,包括HTTP协议,WinInet库的使用,POST请求步骤,数据格式化,错误处理,以及异步请求和安全性。学习和理解这些内容对于进行网络编程至关重要。在...

    vc post上传文件,下载文件控件

    在本场景中,我们关注的是一个特定的OCX(ActiveX)控件,该控件实现了一种功能,即通过POST方法上传文件以及从服务器下载文件。这在Web应用开发中是非常重要的功能,尤其是当需要用户交互并处理本地文件时。 首先...

    vc中http相关技术源码

    GET方法是HTTP中最常见的请求类型,用于从服务器获取资源。在VC++中实现GET请求,通常会涉及到创建一个HTTP连接,构造包含URL的请求头,然后发送请求并接收响应。源码中可能会包含如何使用Winsock库或者Microsoft的...

    VC6.0通过HTTP协议读取网上文件----代码

    以下是使用WinInet库在VC6.0中实现HTTP文件下载的基本步骤: 1. **包含必要的头文件**:在你的源代码中,需要包含`wininet.h`头文件,它包含了所有WinInet库相关的函数声明。 ```cpp #include #include <wininet....

    c++文件post上传服务器

    在VC6.0环境下,由于标准库并不直接支持网络编程,我们通常需要使用第三方库,如libcurl或WinInet。这些库提供了API接口,可以方便地构造和发送HTTP请求。例如,libcurl库的`curl_easy_setopt`函数可以设置各种选项...

Global site tag (gtag.js) - Google Analytics