首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让MSXML处理IXMLHTTPRequest重定向?

如何让MSXML处理IXMLHTTPRequest重定向?
EN

Stack Overflow用户
提问于 2013-06-19 06:21:57
回答 2查看 957关注 0票数 7

情况: 1)我需要在Windows上的C++中为我们的动态链接库进行HTTPS网络调用。2)至少需要支持XP (我猜SP3也可以) 3)不支持ATL、MFC、不支持IE

问:我最近从Boost netlib切换到使用MSXML的IXMLHTTPRequest来满足我们在windows上的(非常简单的)网络需求。虽然一切看起来都很好,但我们注意到重定向不起作用。在fiddler中,我得到一个HTTP 302,然后是第二个成功的HTTP 200请求/响应。

然而,在实际的C++代码中,我从IXMLHTTPRequest->Send获得E_ACCESSDENIED,并且HTTP响应代码为零。因此,在代码中,我无法知道实际发生了什么。

由于在Fiddler中一切正常,我尝试将其设置为异步并检查回调,还尝试了IXMLHttpServerRequest、IXMLHttpServerRequest2和MSXML v6,但都不起作用。

注意:我们在WinRT上使用IXMLHttpRequest2,它工作得很好(处理OnRedirect事件)。

有没有办法让MSXML的IXMLHTTPRequest来处理重定向?

或者我需要切换到WinInet/WinSockets/WinHttp?我认为我需要使用WinHttp (因为我需要支持Windows Services/IIS,而WInInet显然不支持,而我认为WinSockets的级别太低,无法满足我的需求)。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-27 01:34:20

我已经很长时间没有这样做了,所以这个答案可能有点过时了。在我的记忆中,IXMLHTTPRequest的重定向策略非常严格。重定向是否使用与原始请求相同的源?如果是这样的话,这可能会违反导致您出错的安全限制。

如果这确实是问题所在,请尝试使用IServerXMLHTTPRequest。

票数 2
EN

Stack Overflow用户

发布于 2014-03-21 09:00:34

我认为这可能是因为您的IXMLHTTPRequest2::Open调用没有传入IXMLHTTPRequest2Callback类的实例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17180017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档