XMLHttp WinHttpRequest 用法总结
2013-10-15 20:48
423 查看
Windows 自带能实现 HTTP 请求响应的组件,比如:“MSXML2.XMLHTTP”、“Microsoft.XMLHTTP”、“WinHttp.WinHttpRequest.5.1”、WinSock、INET ,都能用,但用法不同,下面简单聊一下前三个:
前三个的使用方式基本相同,都是先创建对象(CreateObject),然后以需要的方式打开(.open),再设置请求头部(.setRequestHeaders),弄好就可以发送了(.send),等待响应得到响应结果(.responseText)。
示例代码如下:
Set request = CreateObject("WinHttp.WinHttpRequest.5.1") '根据对象签名创建对象
request.open "POST", url, False 'POST 或 GET 方式打开对象
request.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
request.setRequestHeader "Accept", "*/*"
request.setRequestHeader "Referer", "http://www.baidu.com" '提交来路
request.setRequestHeader "Accept-Language", "zh-cn"
request.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2;)"
request.setRequestHeader "Connection", "Keep-Alive"
request.send (data) '发送数据
result = request.responseText '返回数据
解读:
第 1 行:根据对象在系统中的签名,用 CreateObject 方式创建对象。但不同对象有不同特性,后详;
第 2 行:以指定方式(POST 或 GET)打开对象,并设置 URL 和 是否异步传输;
第 3-8 行:设置 Http 请求的头部,按常规逐一设置即可。但,千万注意,MSXML2.XMLHTTP 和 Microsoft.XMLHTTP 是不支持 referer 的,设置了也没用!!
第 9 行 如果是 GET 方式,则 request.send 即可,如果是 POST 方式,则要跟上需要包体(a=1&b=2&c=3)做参数,但,最坑爹的是:必须要写成
request.send (data),不加括号都不行,提示参数不正确(incorrect parameter)!这是违反 VB 程序书写习惯的。可怜的我,看到一直提示
参数不正确,找 google 查了够半天,终于找到是括号问题。此时此刻,没有技术性的百度被无视了。
第 10 行得到响应结果,根据返回数据类型,分别使用 responseBody,responseText,responseXML 即可。
总结:
XMLHTTP 是系统内置的轻量级控件,Ajax 在网页中的实现也主要是依赖它。适合轻型客户端的快速开发,但 referer 和 send 的问题请注意,免得浪费时间~~~~~
前三个的使用方式基本相同,都是先创建对象(CreateObject),然后以需要的方式打开(.open),再设置请求头部(.setRequestHeaders),弄好就可以发送了(.send),等待响应得到响应结果(.responseText)。
示例代码如下:
Set request = CreateObject("WinHttp.WinHttpRequest.5.1") '根据对象签名创建对象
request.open "POST", url, False 'POST 或 GET 方式打开对象
request.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
request.setRequestHeader "Accept", "*/*"
request.setRequestHeader "Referer", "http://www.baidu.com" '提交来路
request.setRequestHeader "Accept-Language", "zh-cn"
request.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2;)"
request.setRequestHeader "Connection", "Keep-Alive"
request.send (data) '发送数据
result = request.responseText '返回数据
解读:
第 1 行:根据对象在系统中的签名,用 CreateObject 方式创建对象。但不同对象有不同特性,后详;
第 2 行:以指定方式(POST 或 GET)打开对象,并设置 URL 和 是否异步传输;
第 3-8 行:设置 Http 请求的头部,按常规逐一设置即可。但,千万注意,MSXML2.XMLHTTP 和 Microsoft.XMLHTTP 是不支持 referer 的,设置了也没用!!
第 9 行 如果是 GET 方式,则 request.send 即可,如果是 POST 方式,则要跟上需要包体(a=1&b=2&c=3)做参数,但,最坑爹的是:必须要写成
request.send (data),不加括号都不行,提示参数不正确(incorrect parameter)!这是违反 VB 程序书写习惯的。可怜的我,看到一直提示
参数不正确,找 google 查了够半天,终于找到是括号问题。此时此刻,没有技术性的百度被无视了。
第 10 行得到响应结果,根据返回数据类型,分别使用 responseBody,responseText,responseXML 即可。
总结:
XMLHTTP 是系统内置的轻量级控件,Ajax 在网页中的实现也主要是依赖它。适合轻型客户端的快速开发,但 referer 和 send 的问题请注意,免得浪费时间~~~~~
相关文章推荐
- XMLHttpRequest用法介绍
- Ajax核心XMLHttpRequest总结
- XMLHttpRequest的用法
- 跨浏览器开发经验总结(六) —— XML文档处理 & XMLHttpRequest对象
- AJAX总结之XMLHttpRequest对象的五步使用法
- XMLHttpRequest的用法
- XMLHTTPRequest 的用法
- Ajax的用法之XMLHttpRequest
- 《Java从入门到放弃》JSP入门篇:XMLHttpRequest的基本用法
- ajax的用法——基于XMLHttpRequest
- 总结XMLHttpRequest对象
- 利用 Microsoft.XMLHTTP/XMLHttpRequest 对象 实现Ajax技术 的总结
- 《Java从入门到放弃》入门篇:XMLHttpRequest的基本用法
- AJAX省级联动Demo+总结XMLHttpRequest 三个返回格式选取策略
- html5+ XMLHttpRequest 与mui ajax用法
- Ajax核心XMLHttpRequest总结
- ajax 入门基础之 XMLHttpRequest对象总结
- ajax核心技术的简练总结——XMLHttpRequestd
- Ajax错误 “SCRIPT7002: XMLHttpRequest: 网络错误 0x2ef3, 由于出现错误 00002ef3 而导致此项操作无法完成” 的归纳总结
- 关于ajax的XMLHttpRequest对象的方法总结