C#リンクアナライザーが不正な要求エラーを取得していますか?
-
22-07-2019 - |
質問
URLを取り込み、リダイレクト先の最初の場所を吐き出すかなり単純なプログラムがあります。とにかく、私はいくつかのリンクでテストしてきましたが、いくつかのURLで400のエラーが発生することに気付きました。ブラウザに貼り付けてそのようなURLをテストしてみましたが、うまくいきました。
static string getLoc(string curLoc, out string StatusDescription, int timeoutmillseconds)
{
HttpWebRequest x = (HttpWebRequest)WebRequest.Create(curLoc);
x.UserAgent = "Opera/9.52 (Windows NT 6.0; U; en)";
x.Timeout = timeoutmillseconds;
x.AllowAutoRedirect = false;
HttpWebResponse y = null;
try
{
y = (HttpWebResponse)x.GetResponse(); //At this point it throws a 400 bad request exception.
解決
クッキーで何か奇妙なことが起こっていると思います。リンクのテスト方法により、リンクが機能するために必要なCookieがブラウザにありましたが、リンクにはなかったことがわかりました。手動でテストした(他のリンクが失敗した)リンクの一部がCookieを生成していたことがわかりました。
発生したことはやや複雑ですが、簡単な答えは、ブラウザにCookieがあり、プログラムにはない、リダイレクト間でCookieを維持しても問題が解決しないことです。
根本的な問題は、テスト中のリンクに追加のパラメーターまたはCookie、あるいはその両方が必要であるという事実が原因です。パラメータ/ Cookieは追跡用であり、追跡を中断したくないため、テストでは両方を回避しようとしました。
要するに、私は問題が何であるかを知っていますが、それは解決可能な問題ではありません。
所属していません StackOverflow