问题标签 [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 回答
4718 浏览

windows - 为什么 2008 服务器 R2 x64 不接受 cookie

我有使用 wininet 执行典型 InternetOpen -> InternetConnect -> HttpOpenRequest -> HttpSendRequest 的 http 连接代码,它在所有早期版本的 windows 上都工作得很好,但是 win server r2 x64 发生的事情是其他一切工作得很好但是cookie 没有被接受并在后续调用中返回(我喜欢 wireshark)(导致事情失败)。因此,我从 4 个不同调用以及 InternetSetOption 和 InternetSetPerSiteCookieDecision 可用的各种标志和选项开始。而且我似乎还没有找到让 2008 服务器接受 cookie 的方法。唯一的问题是我使用的是直接 ip(比如 192.0.0.1(不是真正的 ip))而不是像 www.foo.com 这样的东西。

0 投票
3 回答
3538 浏览

delphi - 为什么我的程序没有在远程 ftp 服务器上上传文件?

我对这个程序进行了编码,以使用 ftpput api 在服务器上上传文件,它无法运行,但文件未删除!

这是代码:

0 投票
2 回答
346 浏览

wininet - 从 \\share 加载 xml 文件时,MSXML 使用 wininet

我们知道我们不应该使用 Classic ASP 中的 MSXML 来加载远程 xml 文件,因为 WinInet 不是为服务器使用而设计的。

您知道从 \\server\sharefolder 加载 xml 文件是否也会加载 wininet?

我们应该改用 ServerXmlHTTP 吗?

谢谢

里多

0 投票
2 回答
1812 浏览

c# - 在 64 位操作系统中以编程方式删除 IE 缓存

如何在 64 位环境下删除 IE 缓存?

0 投票
2 回答
1645 浏览

wininet - WinInet:为什么第一次 HttpSendRequest 需要更长的时间?

我保证这并不像听起来那么简单。我想知道为什么第一次调用 HttpSendRequest 比后续调用花费更长的时间,即使后来的请求是针对不同的 URL 的。例如:

InternetConnect(... "foo.com" ...) // 立即返回
HttpOpenRequest(...) // 立即返回
HttpSendRequest(...) // 需要 ~3 秒
HttpSendRequest(...) // 需要 ~ 200 毫秒

InternetConnect(... "bar.com" ...) // 立即返回
HttpOpenRequest(...) // 立即返回
HttpSendRequest(...) // 需要 ~200 ms

为什么第一个 HttpSendRequest(...) 需要这么长时间?无论 URL 是什么,这都是非常一致的。

谢谢,格雷格

0 投票
2 回答
2855 浏览

c++ - 在 MFC 应用程序中使用 wininet 和 winhttp 编译错误

奇怪的是我之前有这个工作,但我重新安装了我的系统,升级到 w7,现在我似乎无法编译这段代码。

问题是我在我的大部分应用程序中都使用了 winhttp.h,但是我有一个使用 wininet.h 功能编写的简单 FTP 客户端对象。无论我如何/在何处包含哪些标头,我现在似乎都无法编译应用程序。

目前我在我的 stdafx.h 中有:

在我的 ftp 客户端 .c

这会成功编译所有对象,但失败的 FTP 客户端对象除外:

c:\Program Files\Microsoft Platform SDK\Include\WinInet.h(52) : 警告 C4005: 'BOOLAPI' : 宏重新定义 c:\Program Files\Microsoft Platform SDK\Include\winhttp.h(45) : 见之前的定义'BOOLAPI' c:\Program Files\Microsoft Platform SDK\Include\WinInet.h(270):错误 C2143:语法错误:在 '('c:\Program Files\Microsoft Platform SDK\Include\WinInet 之前缺少 '}' .h(270) : 致命错误 C1903: 无法从先前的错误中恢复;停止编译

有什么建议吗?

0 投票
2 回答
3161 浏览

c++ - 当两个以上的下载已经在进行时 HttpSendRequest 阻塞

在我们的程序中,每次需要发出 HTTP 请求时都会创建一个新线程,并且可以同时运行多个线程。我遇到的问题是,如果我有两个线程已经在运行,它们在InternetReadFile()调用后循环读取HttpSendRequest(),任何后续调用尝试都HttpSendRequest()挂在该调用上,所以我最终得到前面提到的两个线程继续从他们的连接中读取就好了,但第三个只是阻塞HttpSendRequest()直到超时。

根据我自己的发现,这似乎只是 wininet 的工作方式,正如HTTP 规范所建议的那样:“单用户客户端不应与任何服务器或代理保持超过 2 个连接。 "

我见过各种程序同时处理多个到同一服务器的下载,但我想他们需要做很多额外的工作才能做到这一点,比如管理各种连接或编写自己的 http 接口。

如果将其设置为处理两个以上的活动会话需要很多额外的复杂性,那么我只需将其更改为一次只处理一个或两个文件,其余的则排队。但是,如果有一些低复杂度的方法可以一次允许两个以上(在我的脑海中,我猜每次下载使用一个新进程可能会起作用,但会更麻烦),那将是可取的;无论如何,它不会同时下载超过 3-5 个,并且每次下载都是应用户的要求。我读过一些关于注册表黑客以更改限制的内容,但这绝对不是我会做的事情。有任何想法吗?

0 投票
1 回答
2644 浏览

windows - 使用 WinINet 时的被动 FTP 超时

我正在尝试使用被动 ftp 对文件进行 ftp,但在put调用命令时出现超时(12002)。

我可以将被动 ftp 与其他 ftp 站点一起使用,但不能使用这个新站点。

我已经在同一台服务器上使用三种不同的方式进行了尝试:

  • 被动模式下的 FileZilla 客户端 - 这有效
  • 被动模式下的 WinINet 库 - 调用 PutFile 时出现超时
  • IE 6 处于被动模式 - 尝试列出目录时出现超时

这是在 Windows 2000 服务器上。

我假设我的防火墙设置正确,因为 FileZilla 工作。

谁能帮我弄清楚发生了什么?

0 投票
2 回答
6454 浏览

c++ - C++/WinInet 更改代理设置 Windows 7

[免责声明:据我所知,这是一个 Windows 7 特定问题]

我有一段代码可以更改 Windows 注册表中的代理设置,然后继续使用以下内容调用 WinInet API:

这在 XP 和 Vista 中完全没问题,但在 Windows 7 中显然发生了一些变化,并且由于某种原因,以前的注册表项被重新注入,导致它无法按预期工作。

如果我注释掉这两行代码,注册表值仍然存在,但显然 IE 和其他依赖该代理信息的应用程序不知道配置已更改。

是否有更好的方法来通知系统选项已更改并需要重新加载?我已经在这个问题上搜索了几天,切换了编译器等,但我没有做任何事情让它像我在 Windows 7 中所期望的那样工作。

0 投票
3 回答
34300 浏览

delphi - 如何使用 WinInet api 在 Delphi 中发送 HTTP POST 请求

我正在尝试使用 WinInet 函数从 Delphi 发出 HTTP 请求。

到目前为止,我有:

但这并没有做任何事情(我正在嗅探网络 http 流量以查看它是否有效)。我已经成功使用了 InternetOpenURL,但我还需要发送 POST 请求,而该函数不能这样做。

有人可以给我看一个简单的例子吗?我想要的结果是将 var 中的 http 响应页面作为字符串获取。