WinHTTP Services 5.1 参考资料
来源:Microsoft 发布时间:2010-03-27 20:49:00
WinHttp; // Microsoft WinHTTP Services, version 5.1
Alias HTTPREQUEST_PROXY_SETTING;
I4
Alias HTTPREQUEST_SETCREDENTIALS_FLAGS;
I4
Enum WinHttpRequestOption; // WinHttpRequest Options
GUID={12782009-FE90-4877-9730-E5E183669B19};
WinHttpRequestOption_UserAgentString = 0;
WinHttpRequestOption_URL = 1;
WinHttpRequestOption_URLCodePage = 2;
WinHttpRequestOption_EscapePercentInURL = 3;
WinHttpRequestOption_SslErrorIgnoreFlags = 4;
WinHttpRequestOption_SelectCertificate = 5;
WinHttpRequestOption_EnableRedirects = 6;
WinHttpRequestOption_UrlEscapeDisable = 7;
WinHttpRequestOption_UrlEscapeDisableQuery = 8;
WinHttpRequestOption_SecureProtocols = 9;
WinHttpRequestOption_EnableTracing = 10;
WinHttpRequestOption_RevertImpersonationOverSsl = 11;
WinHttpRequestOption_EnableHttpsToHttpRedirects = 12;
WinHttpRequestOption_EnablePassportAuthentication = 13;
WinHttpRequestOption_MaxAutomaticRedirects = 14;
WinHttpRequestOption_MaxResponseHeaderSize = 15;
WinHttpRequestOption_MaxResponseDrainSize = 16;
WinHttpRequestOption_EnableHttp1_1 = 17;
WinHttpRequestOption_EnableCertificateRevocationCheck = 18;
Enum WinHttpRequestAutoLogonPolicy;
GUID={9D8A6DF8-13DE-4B1F-A330-67C719D62514};
AutoLogonPolicy_Always = 0;
AutoLogonPolicy_OnlyIfBypassProxy = 1;
AutoLogonPolicy_Never = 2;
Enum WinHttpRequestSslErrorFlags;
GUID={152A1CA2-55A9-43A3-B187-0605BB886349};
SslErrorFlag_UnknownCA = $100;
SslErrorFlag_CertWrongUsage = $200;
SslErrorFlag_CertCNInvalid = $1000;
SslErrorFlag_CertDateInvalid = $2000;
SslErrorFlag_Ignore_All = $3300;
Enum WinHttpRequestSecureProtocols;
GUID={6B2C51C1-A8EA-46BD-B928-C9B76F9F14DD};
SecureProtocol_SSL2 = 8;
SecureProtocol_SSL3 = 32;
SecureProtocol_TLS1 = 128;
SecureProtocol_ALL = 168;
Dispatch IWinHttpRequest; // IWinHttpRequest Interface
GUID={016FE2EC-B2C8-45F8-B23B-39E53A75396B};
function QueryInterface(riid:^GUID; out ppvObj:^^void);
function AddRef: UI4;
function Release: UI4;
function GetTypeInfoCount(out pctinfo:^UINT);
function GetTypeInfo(itinfo:UINT; lcid:UI4; out pptinfo:^^void);
function GetIDsOfNames(riid:^GUID; rgszNames:^^I1; cNames:UINT; lcid:UI4; out rgdispid:^I4);
function Invoke(dispidMember:I4; riid:^GUID; lcid:UI4; wFlags:UI2; pdispparams:^DISPPARAMS; out pvarResult:^variant; out pexcepinfo:^EXCEPINFO; out puArgErr:^UINT);
function SetProxy(ProxySetting:HTTPREQUEST_PROXY_SETTING; [ProxyServer:variant; BypassList:variant]);
function SetCredentials(UserName:BSTR; Password:BSTR; Flags:HTTPREQUEST_SETCREDENTIALS_FLAGS);
function Open(Method:BSTR; Url:BSTR; [Async:variant]);
function SetRequestHeader(Header:BSTR; Value:BSTR);
function GetResponseHeader(Header:BSTR): BSTR;
function GetAllResponseHeaders: BSTR;
function Send([Body:variant]);
property-get Status: I4;
property-get StatusText: BSTR;
property-get ResponseText: BSTR;
property-get ResponseBody: variant;
property-get ResponseStream: variant;
property-get Option(Option:WinHttpRequestOption): variant;
property-put Option(Option:WinHttpRequestOption; variant);
function WaitForResponse([Timeout:variant]): bool;
function Abort;
function SetTimeouts(ResolveTimeout:I4; ConnectTimeout:I4; SendTimeout:I4; ReceiveTimeout:I4);
function SetClientCertificate(ClientCertificate:BSTR);
function SetAutoLogonPolicy(AutoLogonPolicy:WinHttpRequestAutoLogonPolicy);
Interface IWinHttpRequestEvents; // IWinHttpRequestEvents Interface
GUID={F97F4E15-B787-4212-80D1-D380CBBF982E};
function OnResponseStart(Status:I4; ContentType:BSTR);
function OnResponseDataAvailable(Data:^^UI1);
function OnResponseFinished;
function OnError(ErrorNumber:I4; ErrorDescription:BSTR);
Class WinHttpRequest; // WinHttpRequest component
GUID={2087C2F4-2CEF-4953-A8AB-66779B670495};
function QueryInterface(riid:^GUID; out ppvObj:^^void);
function AddRef: UI4;
function Release: UI4;
function GetTypeInfoCount(out pctinfo:^UINT);
function GetTypeInfo(itinfo:UINT; lcid:UI4; out pptinfo:^^void);
function GetIDsOfNames(riid:^GUID; rgszNames:^^I1; cNames:UINT; lcid:UI4; out rgdispid:^I4);
function Invoke(dispidMember:I4; riid:^GUID; lcid:UI4; wFlags:UI2; pdispparams:^DISPPARAMS; out pvarResult:^variant; out pexcepinfo:^EXCEPINFO; out puArgErr:^UINT);
function SetProxy(ProxySetting:HTTPREQUEST_PROXY_SETTING; [ProxyServer:variant; BypassList:variant]);
function SetCredentials(UserName:BSTR; Password:BSTR; Flags:HTTPREQUEST_SETCREDENTIALS_FLAGS);
function Open(Method:BSTR; Url:BSTR; [Async:variant]);
function SetRequestHeader(Header:BSTR; Value:BSTR);
function GetResponseHeader(Header:BSTR): BSTR;
function GetAllResponseHeaders: BSTR;
function Send([Body:variant]);
property-get Status: I4;
property-get StatusText: BSTR;
property-get ResponseText: BSTR;
property-get ResponseBody: variant;
property-get ResponseStream: variant;
property-get Option(Option:WinHttpRequestOption): variant;
property-put Option(Option:WinHttpRequestOption; variant);
function WaitForResponse([Timeout:variant]): bool;
function Abort;
function SetTimeouts(ResolveTimeout:I4; ConnectTimeout:I4; SendTimeout:I4; ReceiveTimeout:I4);
function SetClientCertificate(ClientCertificate:BSTR);
function SetAutoLogonPolicy(AutoLogonPolicy:WinHttpRequestAutoLogonPolicy);
function OnResponseStart(Status:I4; ContentType:BSTR);
function OnResponseDataAvailable(Data:^^UI1);
function OnResponseFinished;
function OnError(ErrorNumber:I4; ErrorDescription:BSTR);
示例:
同步获取数据
function getText(strURL)
{
var strResult;
try
{
// Create the WinHTTPRequest ActiveX Object.
var WinHttpReq = new ActiveXObject(
"WinHttp.WinHttpRequest.5.1");
// Create an HTTP request.
var temp = WinHttpReq.Open("GET", strURL, false);
// Send the HTTP request.
WinHttpReq.Send();
// Retrieve the response text.
strResult = WinHttpReq.ResponseText;
}
catch (objError)
{
strResult = objError + "\n"
strResult += "WinHTTP returned error: " +
(objError.number & 0xFFFF).toString() + "\n\n";
strResult += objError.description;
}
// Return the response text.
return strResult;
}
WScript.Echo(getText(http://www.microsoft.com/default.htm));
改为异步获取
// Create a HTTP request.
var temp = WinHttpReq.Open("GET", strURL, true);//此处由false改成true
在访问ResponseText之前调用WaitForResponse方法以确保获取的是完整的响应。
// Send the HTTP request.
WinHttpReq.Send();
// Wait for the entire response.
WinHttpReq.WaitForResponse();
// Retrieve the response text.
strResult = WinHttpReq.ResponseText;


猜你喜欢
- 在python用import或者from...import来导入相应的模块。模块其实就是一些函数和类的集合文件,它能实现一些相应的功能,当我
- 从大的发展来看,网站就是一块试验田,一块在错误中成长、在错误中变强变大的试验田。这决定了互联网产品的成长路线,一定是一个反复修正和迭代的曲线
- 引言最近刚刚用python写完了一个解析protobuf文件的简单编译器,深感ply实现词法分析和语法分析的简洁方便。乘着余热未过,头脑清醒
- 方法: 使用urlencode函数urllib.request.urlopen()import urllib.requestimport u
- NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推。在NumPy中,每一个线性的数组称为是一个轴(axes
- 前言本文紧接着前一篇的入门教程,会介绍一些关于pandas的进阶知识。建议读者在阅读本文之前先看完pandas入门教程。同样的,本文的测试数
- SqlBulkCopy 来自数据源的 String 类型的给定值不能转换为指定目标列的类型 nvarchar。 在网上找了下,大都说是因为数
- 闭包函数是什么?在开始学习的闭包的时候,大家很能都比较难理解.就从他的官方解释来说,都是比较概念化的.不过我们也还是从闭包的含义出发。闭包是
- RSA算法是一种非对称加密算法,是现在广泛使用的公钥加密算法,主要应用是加密信息和数字签名。 * 给出的RSA算法简介如下: 假设Alic
- 无论你是使用Windows,Linux还是Mac OS操作系统来开发Go应用程序,在安装好Go安装语言开发工具之后,都必须配置好Go语言开发
- PHP7.0正式版也出来了,今天编译安装了一下,写下安装步骤,我是在centos6.6 环境中编译的,下面是详细的安装步骤环境依赖yum i
- 挺久没写博客了,因为博主开始了今年另一段美好的实习经历,学习加做项目,时间已排满;很感谢今年这两段经历,让我接触了golang和python
- 引言自ChatGPT出现,各种基于它的软件扩展纷至沓来,目前Word支持ChatGPT的add-in有两款,可以通过:插入->获取加载
- 一 CGI.pm中的方法(routines)调用1. CGI.pm实现了两种使用方法,分别是面向对象的方式和传统的perlmodule方法的
- OpenCV 是一个流行的开源计算机视觉库,可用于不同的编程语言,例如 Python、C++ 和 JavaScript。它提供了一套丰富的工
- floor() 函数向下舍入为最接近的整数。语法floor(x)参数描述x必需。一个数。说明返回不大于 x 的下一个整数
- mysql4.1以上版本连接时出现Client does not support authentic
- 本文实例讲述了MySQL游标概念与用法。分享给大家供大家参考,具体如下:1、游标的概念(Cursor)一条sql,对应N条资源,取出资源的接
- 看到这个标题,你我可能都笑了。你会笑,因为你以为这个东西太小儿科了,还用得着做一个标题?!我会笑,是因为我确信你看完后会改变你的想法。首先我
- 下面把角色分为两种,普通用户和管理员用户,至少对于普通用户来说,直接修改DB是不可取的,要有用户注册的功能,下面就开始进行用户注册的开发。用