0

我正在尝试通过 Web 处理程序访问 XML 文件。我遇到了无限重定向(302)问题。这是因为 cookie 未启用。我不完全确定是什么原因造成的,但需要一些帮助来弄清楚该怎么做。

var url = context.Request.QueryString["xmlurl"];
HttpWebRequest hwr = (HttpWebRequest)WebRequest.Create(url);
hwr.Method = "GET";
hwr.MaximumAutomaticRedirections = 5;

//infinite redirect happens here
HttpWebResponse response = (HttpWebResponse)hwr.GetResponse();

我怀疑需要以下 cookie(通过 Fiddler 找到):

ASP.NET_SessionId= ...
.ASPXAUTH= ...

这些是在通过浏览器访问页面时创建的,但不是通过我的 Web 处理程序创建的。有谁知道我该如何解决这个问题?

我通过网络处理程序得到的确切响应是:

<html>
<head>
   <title>Object moved</title>
</head>
<body>
   <h2>Object moved to <a href="removedForSO">here</a>.</h2>
</body>
</html>
4

1 回答 1

0

答案最终变得相对简单。通过增加

hwr.CookieContainer = new CookieContainer();

它允许服务器将 cookie 附加到响应中,然后允许重定向并传递最终的 xml 文档。

于 2012-09-18T16:22:32.900 回答