问题标签 [winhttp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
http - Win32:WinHttpReadData 中分块编码支持的状态如何?
WinHttpReadData的文档说,关于HTTP 的分块传输编码:
从 Windows Vista 和 Windows Server 2008 开始,WinHttp 使应用程序能够对发送到服务器的数据执行分块传输编码。当 WinHttp 响应中存在 Transfer-Encoding 标头时,WinHttpReadData 在将数据提供给应用程序之前会剥离分块信息。
谁能破译这个?
Q1首先,此文本在 WinHttpReadData 页面上,用于...读取HTTP 客户端应用程序中的数据,特别是响应数据。所以当它说是什么意思
从 Windows Vista 和 Windows Server 2008 开始,WinHttp 使应用程序能够对发送到服务器的数据执行分块传输编码。
WinHttpReadData 函数不与发送到服务器的数据一起使用。从服务器读取数据时使用它。
查阅WinHttpWriteData函数的文档,该函数用于将数据作为 HTTP 请求的一部分发送到服务器,没有提到分块传输功能。
Q2假设我知道新的分块传输支持是多少,我如何获得这种支持? 它说它是 Vista 和 WS2008 上的新功能。如果我编写一个在 WS2003 上运行并使用 WinHttpReadData 的应用程序遇到分块响应或 WinHttpWriteData,并且它想要发送分块请求,会发生什么情况?
字里行间,这个文档是否说我需要链接到 Vista 时代的 Windows SDK 或更高版本中的 WinHttp.lib 才能获得进行分块编码的能力?或者在 WS2003 上真的不可能吗?换句话说,使用这个库进行分块传输的应用程序必须在指定的操作系统上运行?
这可能读起来像咆哮,但事实并非如此。我真的很想知道。
c++ - winHTTP GET 请求 C++
我会直入主题。
这是浏览器请求的样子
获取 /index.html HTTP/1.1
这就是 winHTTP 所做的
获取http://site.com/index.html HTTP/1.1
有没有我可以让 winHTTP 请求与常规请求格式相同?如果有任何区别,我正在使用 VC++ 2008
c++ - HttpAddUrl 权限
我正在尝试在 Windows Server 2008 机器上运行基于 WinHTTP 的自定义 Web 服务器。
我将“http://*:22222/”传递给 HttpAddUrl
当我以管理员或 LocalSystem 身份启动可执行文件时,一切正常。但是,如果我尝试将其作为 NetworkService 运行以最大程度地降低安全风险(因为应用程序没有正当理由使用管理员权限),则功能将失败并显示“拒绝访问”错误代码。
我不知道 NetworkService 对它可以监听的端口和接口有任何限制。
有没有办法以这种方式配置权限,以便我实际上可以在 NetworkService 帐户下运行应用程序并从其他互联网主机连接到它?
asp.net - 如何让 ASP.NET 访问证书存储中证书中的私钥?
我有一个 ASP.NET 应用程序,它可以访问证书存储中证书中的私钥。在 Windows Server 2003 上,我能够使用 winhttpcertcfg.exe 授予对 NETWORK SERVICE 帐户的私钥访问权限。如何在 IIS 7.5 网站的 Windows Server 2008 R2 上授予访问证书存储(本地计算机\个人)中证书中的私钥的权限?
我已经尝试为“Everyone”、“IIS AppPool\DefaultAppPool”、“IIS_IUSRS”以及我可以使用证书 MMC(Server 2008 R2)找到的所有其他安全帐户授予完全信任访问权限。但是,下面的代码表明该代码无权访问使用私钥导入的证书的私钥。每次访问私钥属性时,代码都会抛出错误。
默认.aspx
默认.aspx.cs
http - 通过 HTTP 从 VBA (WinHTTP) 上传文件
我正在尝试(HTTP)从 VBA 中以编程方式上传二进制文件。我打算在服务器上放一个 ASPX 页面来接受文件和某些附加参数。
我知道有很多很好的方法可以做到这一点(例如使用 Web 服务而不是 aspx),但我的限制是它必须在 VBA 中运行(在 excel 文件中),并且我不能在客户端上安装任何其他组件。
所以我想我会使用 WinHTTP,并且我找到了几个发布表单数据的示例,而不是发布二进制文件。我可能需要对文件内容进行base64?
所以我的问题是:
- 我需要手动进行编码还是可以让 WinHTTP 这样做?
- 有没有比 WinHTTP 更好的实用程序?(记住我不想安装任何额外的软件,它必须随 WinXP Pro、Office 2007 或 .NET 框架一起提供,例如)
- 有没有更好的方法,例如使用 ASP.NET Web 服务?
谢谢,奇科多罗
c - 有没有在 Windows 上的 C 中使用 winhttp 的完整示例?
我可以在 C++ 中找到大量示例,但没有任何仅用 C 编写的示例。我正在尝试连接到 http 服务器,下载返回的数据,然后将其保存到文件中。有没有更好的方法在 Windows 上做到这一点?我不应该使用 WinHttp 或 WinInet 吗?互联网上似乎非常缺乏 C 的 Windows 文档。感谢您的帮助。
winhttp - 在 WinHTTP (c++) 中设置 IP 首选项
我有一个在 Windows 7 上使用 WinHTTP 的代码。
我遇到的问题是,当用户尝试使用 IPv6 地址(已禁用)时,与特定主机名的连接需要很长时间。
我想配置连接(可能是 WinHttpConnect 参数)以首先尝试 IPv4 。
有没有办法设置地址绑定顺序?
c++ - Windows C++ 我应该使用 WinHttp 库还是 MSXML 中的 XmlHttp?
一个比较简单的问题。我应该使用WinHttp
库在我的 C++ 程序中发出 Web 服务请求,还是应该使用库中的IXmlHttpRequest
接口msxml
发送 Web 服务请求?显然,与WinHttp
库相比,库提供了更精细的控制IXmlHttpRequest
。但是XmlHttpRequest
对象是w3.org
标准的,理论上更便携。
c++ - 当第一个 ip 错误时使用 winhttp 连接到多宿主主机
我试图确认这里描述的功能:
http://msdn.microsoft.com/en-us/library/aa384066(VS.85).aspx
WINHTTP_OPTION_CONNECT_RETRIES 设置或检索一个无符号长整数值,该值包含 WinHTTP 尝试连接到主机的次数。Microsoft Windows HTTP 服务 (WinHTTP) 每个 Internet 协议 (IP) 地址仅尝试一次。例如,如果您尝试连接到具有 10 个 IP 地址且 WINHTTP_OPTION_CONNECT_RETRIES 设置为 7 的多宿主主机,则 WinHTTP 仅尝试连接到前七个 IP 地址。给定同一组 10 个 IP 地址,如果 WINHTTP_OPTION_CONNECT_RETRIES 设置为 20,WinHTTP 只尝试这 10 个 IP 地址中的每一个。如果在指定的尝试次数后连接尝试仍然失败,或者在此之前连接超时过期,则取消请求。WINHTTP_OPTION_CONNECT_RETRIES 的默认值为五次尝试。
确实有效。
我的代码是:
一种测试方法是将其放在您的 C:\WINDOWS\system32\drivers\etc\hosts 文件中:
类型
(这应该失败)然后
您应该会看到 google.com 的两条 dns 记录。
如上所述,默认值为 5,这意味着它应该继续尝试第二个 ip,但事实并非如此。我错过了什么?