`
yajie
  • 浏览: 211922 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
阅读更多

WinHttpRequest,WinHttp.WinHttpRequest.5.1,WinHttpRequest使用,WinHttpRequest参考,WinHttpRequest说明文档

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;
0
2
分享到:
评论

相关推荐

    WinHttp参考手册英文版

    整体而言,WinHTTP参考手册是针对希望深入理解和使用Windows HTTP Services进行网络编程的开发者的资源库,从基础概念到高级特性,再到实用工具和API的详细说明,它都提供了全面的指导。这本手册是开发者构建基于...

    WinHTTP编程参考手册.pdf

    WinHTTP编程参考手册是一份针对使用WinHTTP API进行HTTP通信编程的详细指导文档,特别适用于在Windows平台下使用C++编写HTTP相关的应用程序。WinHTTP API是Windows提供的一个底层的HTTP客户端API,允许开发者能够...

    WinHttp.WinHttpRequest.5.1中文参考手册

    本手册提供了 WinHttp.WinHttpRequest.5.1 的中文参考手册,涵盖了事件、方法、属性等方面的详细信息。 事件: * OnError:发生错误时触发的事件,可以捕捉到应用程序运行时的错误。 * OnResponseDataAvailable:...

    易语言_WinHttpAPI访问类 模块源码

    这个不是论坛上以往的winhttprequest对象 而是100%纯正血统的WIN32 API 其实winhttp dll动态库包含了WinHTTP C C++ API Reference和WinHttpRequest Object Reference两种参考 支持多线程 代理 超时 Cookie 重定向 ...

    WinHttp类模块.rar

    WinHttp类模块是Windows平台下用于HTTP网络...对于想要在易语言中进行网络编程的开发者来说,这是一个非常有价值的参考资料。通过深入研究和实践,开发者可以掌握WinHttp的使用,从而编写出高效、稳定的网络应用程序。

    sdk,c++,winhttp动态库形式开发的网上下载工具

    标题中的“sdk,c++,winhttp动态库形式开发的网上下载工具”揭示了这个项目的核心内容。...这些知识点涵盖了网络编程、多线程、用户界面设计等多个方面,对于学习和开发类似的下载工具具有很高的参考价值。

    易语言Winhttp对象模块源码

    本资源是易语言的Winhttp对象模块的源码,对于学习易语言中的网络编程部分具有很高的参考价值。 HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器的传输...

    易语言源码WinHttp类模块源码.rar

    此外,可能还会涉及到错误处理机制,性能优化建议等内容,这对于初学者来说是非常有价值的参考资料。 在实际应用中,开发者可以根据这份源码和说明,快速构建自己的网络通信功能,例如开发一个网页爬虫,或者创建一...

    易语言源码易语言WinHttp访问网页源码.rar

    这个压缩包“易语言源码易语言WinHttp访问网页源码.rar”包含了使用易语言实现通过WinHttp API访问网页的源代码,对于学习易语言网络编程的初学者来说是一份非常有价值的参考资料。 WinHttp是Windows操作系统提供的...

    WinHttpExample.rar

    `WinHttpExample.rar`中的源代码应该包含了这些功能的实现,可以作为学习和参考的实例。 总的来说,WinHTTP库为开发者提供了一种高效且灵活的方式,在VS2017环境下实现HTTP客户端功能。通过理解并实践上述步骤,你...

    winhttp相关文件

    头文件通常不包含任何可执行代码,只是提供编程时的接口参考。 2. **库文件**:描述中的“lib”可能指的是静态库或动态库文件,例如`libwinhttp.lib`或`winhttp.dll`。静态库是在编译时链接到目标程序中的,而动态...

    HTTP HTTPS POST GET(包含curl版本和winhttp两种实现),修复bug版

    总的来说,这个项目提供了一种实践方法,通过curl和WinHTTP来实现HTTP/HTTPS的GET和POST操作,同时解决了已知的bug,对于学习网络编程和API使用具有很高的参考价值。无论是想要理解HTTP请求的工作原理,还是需要在...

    易语言源码易语言WINHTTP宽字符API源码.rar

    易语言是一种专为中国人设计的编程语言,它以简体中文作为编程语法,降低了编程的...同时,这也提供了一个实际的例子,展示了如何在易语言中处理宽字符,对于处理中文字符和其他Unicode字符的程序设计具有参考意义。

    易语言WinHttp类模块5.1源码.zip易语言项目例子源码下载

    易语言WinHttp类模块5.1源码.zip易语言项目例子源码下载易语言WinHttp类模块5.1源码.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合小团队开发项目参考

    XmlHttp参考手册(chm)

    XmlHttp参考手册是一款针对Web开发者的实用资源,尤其适合那些想要深入理解Web回调技术的开发者。Web回调是一种允许Web应用程序在不刷新整个页面的情况下与服务器进行异步通信的技术,这通常通过XMLHttpRequest...

    WinHttpRequest参考手册

    WinHttpRequest是可以替代XmlHttpRequest的更强大的网络组件。它能够实现XmlHttpRequest不具备的一些高级功能。 本手册主要内容摘自MSDN,制作匆忙,难免会有疏漏,请您见谅。如果您发现了手册中的错误,请与站长...

    易语言Winhttp对象模块源码-易语言

    9. **示例代码**:源码中可能包含了一些示例程序,演示了如何使用Winhttp对象模块进行基本的HTTP请求,这对于初学者来说是非常有价值的参考资料。 通过学习和理解易语言Winhttp对象模块的源码,开发者可以深入掌握...

    易语言网页模块

    参数 com, 对象, 参考, 提供一个COM对象,例如:WINHTTP或XMLHTTP .参数 域名, 文本型, , 例:baidu.com google.com .子程序 对象_设置COOKIES, 逻辑型, 公开, 访问开始前调用 .参数 com, 对象, 参考, 提供一个COM...

Global site tag (gtag.js) - Google Analytics