2

我对遇到的以下问题感到困惑。我们使用安装了IE 8.0的Windows 2008 R2机器。接下来,我尝试通过InternetConnect调用以编程方式连接到服务器(身份验证凭据作为传递给它的参数提供)。它成功了。接下来我调用HttpOpenRequestHttpSendRequest对HttpOpenRequestHttpSendRequest的调用是使用返回的相同连接句柄InternetConnect调用执行的。在某个特定时间点HttpSendRequest开始失败。从流量捕获中,我看到缺少身份验证信息,它使服务器轮流返回401结果。使用提供的INTERNET_OPTION_USERNAMEINTERNET_OPTION_PASSWORD调用InternetSetOption不会产生任何效果。HttpSendRequest失败后,我调用GetLastError并首先接收ERROR_HTTP_INVALID_SERVER_RESPONSE和第二个ERROR_INTERNET_INCORRECT_HANDLE_STATE如果我尝试使用HttpSendRequest重新发送我的请求。

也许你们中的一些人遇到过类似的问题?

4

1 回答 1

0

我发现这是客户行为的正常方式。首先,它尝试匿名联系资源,然后如果失败,它会尝试使用凭据。在单个函数调用中,可以有一个 401 结果,因为下一个请求伴随着身份验证凭据。

于 2013-10-02T16:08:00.440 回答