问题标签 [wininet]

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 回答
585 浏览

internet-explorer - 如何以编程方式从 IE 获取响应信息?

我想知道当我们使用 Windows API 或使用 C++ 的某些接口访问 IE 中的任何页面时,有哪些不同的方法来获取响应代码信息?

我认为一些方法包括

1) 使用 BHO:但我认为这会提供 HTML 信息。我们可以在这里获取与 HTTP 相关的信息,例如响应代码吗?

2)使用异步可插拔协议:

还有其他方法吗?

我可以使用 WinInet 或 WinHttp 来获取这些信息吗?

0 投票
4 回答
1041 浏览

firefox - 非 IE 浏览器的浏览器缓存 API

IE 具有 WinInet API,例如 GetUrlCacheEntryInfo,用于读取和操作 IE 浏览器缓存。

Firefox 或 Chrome 等非 IE 浏览器是否有类似的 API?如果是这样,我在哪里可以获得更多信息?

谢谢

更新:

根据以下(从 XPCOM 组件访问 Firefox 缓存)WinInet 函数 GetUrlCacheEntryInfo() 可以通过 nsICacheSession.openCacheEntry() 来获取 nsICacheEntryDescriptor。是否有一个等效的 WinInet 函数 CreateUrlCacheEntry() 将创建一个缓存条目?

0 投票
3 回答
2856 浏览

url - 您可以传递给 Wininet 函数 HttpOpenRequest 的最大 URL 长度是多少?

您可以传递给 Wininet 函数 HttpOpenRequest 的最大 URL 长度是多少?

0 投票
2 回答
344 浏览

caching - 如果 FindNextUrlCacheEntry() 失败,如何再次检索失败条目的信息?

ERROR_INSUFFICIENT_BUFFER调用时出现错误FindNextUrlCacheEntry()。然后我想使用扩大的缓冲区再次检索失败的条目。但是我发现当我调用 时FindNextUrlCacheEntry(),似乎我正在检索失败条目旁边的那个。有什么方法我可以回去检索刚刚失败的条目的信息吗?

0 投票
3 回答
1294 浏览

winapi - 为什么调用带有 IRF_NO_WAIT 标志的 InternetReadFileEx 函数仍然等待?

我正在使用同步 wininet 请求并InternetReadFileEx()使用IRF_NO_WAIT标志调用,但该函数仍会阻塞等待数据。这是为什么?

0 投票
1 回答
5242 浏览

c - WinInet POST 通过 SSL (HTTPS) 与纯 C?

我一直在尝试仅使用 C 通过 SSL 获取 WinInet HTTP POST。我知道这是可能的。有什么好的示例代码吗?

非常感谢!

编辑:以下代码似乎在使用 WinHTTP 的 C++ 下工作正常,但我需要 WinInet:

0 投票
1 回答
593 浏览

c++ - InternetAttemptConnect 导致崩溃 C++

我有一个使用 wininet 库来做一些服务器发布/请求的应用程序。99.9% 的时间它都能完美运行,但一旦出现蓝月亮,应用程序将在尝试执行 ::InternetAttemptConnect(NULL) 时因无效的内存引用而崩溃。抱歉,描述相当模糊,但有人对可能引发此问题的原因有任何想法吗?

0 投票
0 回答
1891 浏览

c++ - 卸载 WinInet 时应用程序挂起或崩溃

我有一个使用 WinInet 的 VC++ 应用程序。它执行以下操作:

  • 调用LoadLibrary()加载 WinInet.dll
  • 来电InternetAttemptConnect()
  • 来电InternetOpen()
  • 调用InternetConnect()提供INTERNET_SERVICE_FTPdwService

如果最后一次调用失败(通常是因为传递了错误的密码)InternetConnect()返回 0,这应该通过将错误写入日志并退出应用程序来处理。

当这种情况发生时,应用程序要求InternetCloseHandle()关闭返回的句柄InternetOpen()并离开WinMain()

之后库卸载开始 - 持有 wininet.dll 句柄的静态对象被销毁并被 WindowsFreeLibrary()调用或FreeLibrary()调用。在任何情况下,调用FreeLibrary()都会挂起或崩溃。

通常它会挂起以下调用堆栈:

有时它只是崩溃而没有合理的调用堆栈显示。我想问题是 WinInet 尚未正确完成,处理这需要一些额外的操作和时间。

这种情况有解决方法吗?

0 投票
0 回答
2122 浏览

c - 如何过滤 FindFirstUrlCacheEntry()?

我研究了 MSDN 上的文档,但它对我不起作用,我想知道我做错了什么?

我的代码如下,我试图过滤我的 IE 缓存,例如,只获取 cookie:

0 投票
1 回答
9912 浏览

c++ - “有没有更好的办法?” 在 Windows Vista 上使用 wininet 时出现错误 12029

在 Windows Vista 上使用 MFC wininet 类时,我不断收到错误 12029(错误 INTERNET CANNOT CONNECT,连接到服务器的尝试失败。)。错误的原因是由于 Windows Defender。有没有比完全关闭 Windows Defender 更好的方法来解决这个问题?我尝试关闭“实时保护”无济于事,我必须完全关闭 WD 才能停止 12029 错误。

如果没有更好的解决方案,希望有相同问题的其他人会看到这个问题并能够解决他们自己的问题。我搜索了高低的 intertubes 并没有发现 wininet 错误 12029 和 WD 之间的任何交叉引用。

我的代码供参考