问题标签 [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.

0 投票
1 回答
166 浏览

c++ - 在 Windows API 中,是否有一种通用方法可以为您提供适当的 HTTP 代理 URL?

我正在编写一个旨在在世界各地分发的应用程序。最近发现了一个WinHTTP的方法:

http://msdn.microsoft.com/en-us/library/aa384097(VS.85).aspx

这可以解码任何 Netscape 风格的 PAC 文件(在 Javascript 中)并告诉我正确的代理用于我可能想要使用的任何 URL。

这一切都很好,但我注意到我们公司的一些网站使用带有“ins”文件 ( http://support.microsoft.com/kb/171783 ) 的代理配置 - WinHTTP 服务似乎不理解这一点配置风格。

那么我可以使用另一种方法吗?肯定有一个函数可以理解微软的各种配置标准吗?

谢谢!

0 投票
3 回答
27834 浏览

httpwebrequest - Msxml2.ServerXMLHTTP 和 WinHttp.WinHttpRequest 之间的区别?

就在我终于明白 Msxml2.XMLHTTP 和 Msxml2.ServerXMLHTTP 的区别的时候

http://support.microsoft.com/kb/290761

XMLHTTP 是为客户端应用程序设计的,它依赖于基于 Microsoft Win32 Internet (WinInet) 构建的 URLMon。ServerXMLHTTP 是为服务器应用程序设计的,它依赖于新的 HTTP 客户端堆栈 WinHTTP。ServerXMLHTTP 提供可靠性和安全性,并且是服务器安全的。有关详细信息,请参阅 MSXML 软件开发工具包 (SDK) 文档。

突然我发现 WinHttp.WinHttpRequest ......

http://msdn.microsoft.com/en-us/library/aa382925(VS.85).aspx

Microsoft Windows HTTP 服务 (WinHTTP) 为开发人员提供服务器支持的 HTTP/1.1 Internet 协议高级接口。WinHTTP 旨在主要由与 HTTP 服务器通信的服务器应用程序在基于服务器的方案中使用。

那么,这与 Msxml2.ServerXMLHTTP 有何不同

(嗯,隐含的问题是我应该使用哪一个......)

0 投票
1 回答
912 浏览

c++ - 如何在 winhttp 中检索特定站点和路径的 cookie

我想根据我将要向其发送请求的特定主机和路径检索存储在 winhttp 会话缓存中的 cookie。我想在发送请求之前检索那些 cookie,所以我还没有请求句柄,我只有会话和连接句柄,当然还有我要发送请求的路径和主机。

换句话说,我想在实际发送请求之前检索 winhttp 将发送到服务器的 cookie。

我问的原因是因为我们的服务器检查一个特定的标头,我必须设置它,以匹配基于 cookie 等的 md5 检查。我无法控制服务器代码或任何东西。

干杯,

0 投票
1 回答
3506 浏览

vba - Mantis BT 导出请求通过“WinHttp.WinHttpRequest.5.1”

我的老板让我将公司的 Mantis 错误数据库导出到 Excel,但他不能让我访问 SQL Server,并且这个过程必须自动化。

我唯一可以使用的是 Excel(没有 ODBC,没有手动导出)。

所以我设法做到了:

(* : cf the code) 前一行,ResponseText 显示“2200 个错误”,所以在最后一次查询 (csv_export.php) 之前一切都很好。通过浏览器调用该脚本时,显示的页面与调用它的页面完全相同(如果页面显示 2 个错误,则 CSV 将包含 2 个错误)。在 IE / Firefox 中显示了我的 2200 个错误,CSV 给我带来了 2200 个错误。但是在 Excel 中,即使 ResponseText 显示了 2200 个错误,CSV 也给我带来了 624 个错误......好像我没有调用“高级过滤器”页面 :(

我希望有人能理解和帮助我;)

提前致谢,

大卫

0 投票
2 回答
2901 浏览

c# - WinHTTP 连接

我试图让 WinHttp 进行如下所示的“CONNECT”调用(而不是“GET”或“POST”):

但是,winhttp 始终在“CONNECT”动词之后强制执行如下路径(在位置的前面):

任何解决方法?还是我做错了什么?这是在 C# .net 3.5 框架中,Winhttp 5.1

0 投票
1 回答
2596 浏览

c++ - 使用 WinHTTP 下载 HTTP 文件的进度指示

使用 WinHTTP 下载文件时,我想在我的 C++ Windows 应用程序中实现一个进度条。知道怎么做吗?看起来好像 WinHttpSetStatusCallback 是我想要使用的,但我没有看到要查找的通知......或者如何获得“下载百分比”......

帮助!

谢谢!

0 投票
2 回答
1079 浏览

c# - 指定 Winhttp 必须使用的网卡/连接

我有一个 C# 应用程序,它利用 Winhttp 发出 Web 请求。有没有办法指定 WinHTTP 必须使用哪个网卡进行连接?

0 投票
1 回答
1655 浏览

c++ - WinHTTP IWinHttpRequest iface - cookie 处理 - 如何从响应中获取 cookie?

我正在使用 WinHTTP IWinHttpRequest 对象。我做 POST 到 https 域,指定带有凭据的请求正文。该站点应在 HTTP 响应中返回 cookie。该代码在 Wininet 中工作 - 但我不知道如何在 WinHTTP 中从 HTTP 响应中获取 cookie?

有人可以帮忙吗?

多米尼克

0 投票
1 回答
2486 浏览

c - WinHttp:如何使用临时证书存储?

我有一个 C++ 应用程序,它与我们的一台服务器建立 HTTPS 连接。在我的理想世界中,我希望发生以下情况:

  1. 应用程序启动
  2. 应用程序使 Windows 信任服务器的根 CA(请不要使用 GUI,只需系统调用)
  3. 应用程序与服务器对话,完成工作等。
  4. App让windows忘记了服务器的根CA
  5. 完毕

希望这个根 CA 一定会被其他应用程序信任。因此我不想在系统范围内安装证书。如果用户不需要管理员权限,我也希望它。

我最初的计划是创建一个内存 (CERT_STORE_PROV_MEMORY) 存储,将我的证书添加到其中,然后使用 CertAddStoreToCollection 将该内存存储添加到系统存储。

虽然所有 CryptoAPI 函数调用都成功,但 WinHttp 并不喜欢它。

这是我正在做的事情的骨架 - 也许有人知道一个技巧?或者也许这首先是错误的?

几点注意事项:

  • 当我使用 WinHttp 的 SECURITY_FLAG_IGNORE_UNKNOWN_CA 时一切正常,所以我很确定这确实是问题所在。
  • 我已经看到了这个 SO question - 它很接近,但没有解决在应用程序运行时使证书仅暂时受信任的问题。

谢谢!

0 投票
1 回答
7372 浏览

windows-server-2008 - 在使用 WinHttpRequest.5.1 之前,我真的需要在 Windows Server 2008 上注册 WinHttp 吗?

基本上我认为这是 Windows Server 2008 中的一个错误,但我不是 COM 忍者,所以我似乎同样可能只是在做一些愚蠢的事情。问题是:错误还是程序员错误?

我们使用 WinHttpRequest(WinHttp 的 ActiveX 组件)来读取 http:// 和 https://。我们用来查找组件的 ProgID 是WinHttp.WinHttpRequest.5.1.

我们的应用程序在 XP 和 Windows Server 2003 上运行良好。在 Windows Server 2008 下,我们会收到一个错误 ( 0x800029C4A "Error loading type library/DLL") 加载类型库。重新注册 winhttp 可以解决问题。问题是,为什么?

经过无数次死胡同,我在注册表中找到了以下内容。

已安装的 Windows 2008 Server SP2:

调用后regsvr32 %SystemRoot%\System32\WinHttp.dll,此键更改值:

我的理解是,类型的键会REG_EXPAND_SZ扩展系统路径,%SystemRoot%REG_SZ不会。所以要么类型应该是REG_EXPAND_SZ,要么应该使用扩展路径。重新注册 WinHttp 会修复路径,从而修复 WinHttpRequest。(据我所知,XP 使用过C:\Windows\System32\winhttp.dll,Server 2003 使用过适合我的 SxS 安装>0

所以我认为这是一个错误,我向微软提交了一个错误(或者至少我可以从 connect.microsoft.com 的沼泽中做的一样多。)但这是我没有得到的部分:因为 Windows Server 2008 和 Vista 非常相似,这个问题似乎也存在于 Vista 中。WinHttpRequest 必须是一个常用的对象。群众应该尖叫,但经过大量谷歌搜索后,我发现只有一个线程有人遇到这个问题

重新注册 winhttp 解决了这个问题,所以这就是我们正在做的事情。我发布这个是因为 a)我无法相信重新注册这个常用组件是最佳实践,并且 b)如果它是一个错误,也许这会对其他人有所帮助。

-抢