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 ハンドラでは作成されません。これを回避する方法を知っている人はいますか?

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 に答える