Simulate a Form POST Request Using WinInet

原创 2001年11月22日 01:27:00

这是MSDN中的一篇文章,说的是用WinInet来模拟表单的发送,用的是VC及SDK两种方法实现的,用文中方法便可以实现直接将表单发送到WEB服务器上了,比直接在网页上填表高明多了。

原文较短且很简单,就没翻译,直接帖上来了,没弄明白MSDN中的算转帖还是算收藏,反正哪位仁兄能用上就行了

HOWTO: Simulate a Form POST Request Using WinInet

Last reviewed: February 10, 1998
Article ID: Q165298
The information in this article applies to:
  • The Microsoft Foundation Classes (MFC) included with: - Microsoft Visual C++, 32-bit Editions, versions 4.2, 5.0
  • Microsoft Internet Client SDK, versions 4.0, 4.01

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:


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 '%21'.

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: 


REFERENCES

For more information on URL-encoding and the format of a Form POST request, see section 8.2 in RFC 1866.

How to simulate a Form POST request by using WinInet

This article was previously published under Q165298On this PageSUMMARYMORE INFORMATIONREFERENCESSUMM...
  • flynaj
  • flynaj
  • 2004年12月24日 17:18
  • 858

Delphi 用WinInet 单元实现 POST提交数据

由于贪方便,用idhttp控件实现POST部分。结果发现频繁提交的时候总产生10054 等N多不可控错误。遂想换其它方法。百度找了下。基本都是靠webbrowser 、idhttp等控件提交的。于是,...
  • MichaelJScofield
  • MichaelJScofield
  • 2013年04月14日 02:06
  • 9601

simulate POST request

How to simulate POST request? up vote15down votefavorite 4 ...
  • screaming
  • screaming
  • 2016年09月22日 19:01
  • 481

C++通过Wininet库提交POST信息登录到PHPChina中文开发者社区

与上一篇教程文章“c++通过TCP/IP协议提交POST信息登录到PHPChina中文开发者社区”不同的 是这次我们使用Wininet库来提交POST请求并得到HTTP响应消息而非服务器响应消息! ...
  • bjbz_cxy
  • bjbz_cxy
  • 2017年08月26日 15:42
  • 864

用WinInet POST/GET数据

'调用示例 Debug.Print WinInetGet("http://127.0.0.1/index.html") Debug.Print WinInetPost("http://127.0.0...
  • harryxlb
  • harryxlb
  • 2013年04月02日 17:17
  • 1196

用Wininet以Https的post方式登录

整个过程大概是这样的:发送http请求报文到服务器,报文的数据体中带有账号密码;服务器接受处理后返回响应报文;根据响应报文的状态码判断登录是否成功,通过读取返回报文的首部行获取所需的信息。我这里是通过...
  • chenxiao88957478
  • chenxiao88957478
  • 2016年07月08日 17:05
  • 1804

POST发送form-data的一些总结

1.POST发送数据的不同方式和相互区别; 2.form-data发送的真实面目; 3.网络模块移植...
  • kaka_2928
  • kaka_2928
  • 2016年03月18日 14:19
  • 7805

使用Request对象实现get/post表单传值

针对HTML控件 使用Post方式提交表单到WebForm4中 在主页WebForm3中 .auto-style1 { width...
  • winycg
  • winycg
  • 2017年04月01日 11:32
  • 2299

HTTP请求中的form data和request payload的区别

原文转载自:http://xiaobaoqiu.github.io/blog/2014/09/04/form-data-vs-request-payload/ HTTP请求中的form data和r...
  • Stick2It
  • Stick2It
  • 2016年11月29日 17:12
  • 17279

WInINet编程中如何使用异步

在WinInet编程中,同步的使用方法如下: InternetOpen->InternetOpenUrl->HttpQueryInfo->InternetReadFile->InternetClos...
  • likui360
  • likui360
  • 2016年01月25日 10:15
  • 715
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Simulate a Form POST Request Using WinInet
举报原因:
原因补充:

(最多只允许输入30个字)