早些時候,我做了一個HttpWebRequest工作得很好,我的StreamReader完美地讀取了網站的HTML。C#HttpWebRequest突然掛起程序。沒有更早
但是突然之間,在測試過它的功能並確認它已經工作了很多次之後,它會在程序涉及StreamReader時掛起程序。 我試過刪除這一行,代碼繼續。
事情是;我嘗試輸入一個不同的網站,而不是我需要使用的網站(我把它放在www.google.com中),它工作得很好。所以我的錯誤結論是,它只是我需要使用的網站,我再也無法訪問,這使我認爲終端(網站)取消了我的連接或阻止了我或某事。但! HttpWebRequest本身不會掛起或任何東西,這意味着它成功地建立了對網站的請求?
足夠閒聊,這裏是代碼:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("website here");
MessageBox.Show("1"); //This is shown.
string HTMLLink = (new StreamReader(request.GetResponse().GetResponseStream())).ReadToEnd(); //This is where the program hangs....
MessageBox.Show("2"); //This is not shown! Below this isn't being executed.
if (HTMLLink.Length > 0)
{
HTMLLink = HTMLLink.Substring(HTMLLink.IndexOf("uuu"), HTMLLink.Length - HTMLLink.IndexOf("uuu"));
HTMLLink = HTMLLink.Substring(0, HTMLLink.IndexOf("\" TARGET="));
request = (HttpWebRequest)WebRequest.Create(HTMLLink);
string HTML = (new StreamReader(request.GetResponse().GetResponseStream())).ReadToEnd();
if (HTML.Length > 0 && HTML.Contains(" </script><br><br><br>") && HTML.Contains(" <br><br><script "))
{
HTML = HTML.Substring(HTML.IndexOf(" </script><br><br><br>") + 22, HTML.IndexOf("<br><br><script "));
HTML = HTML.Substring(0, HTML.IndexOf("<br><br><script "));
HTML = HTML.Replace("\r\n", "");
HTML = HTML.Replace("\n", "");
HTML = HTML.Replace("<br>", "\r\n");
HTML = HTML.Replace("<BR>", "\r\n");
HTML = HTML.Replace("<br />", "\r\n");
HTML = HTML.Replace("<BR />", "\r\n");
textBox.Text = HTML;
}
}
而且請記住,它完美地工作較早,那麼所有的突然它開始懸掛,而且它正常工作與www.google.com 。
順便說一句,是的,我做了很多搜索。沒有有用的結果。
我已經試過超時了,它超時。 也許該網站阻止了我的程序,認爲它是一隻蜘蛛?然後怎樣呢?
每當我到達StreamReader(無論我如何設置它),它都會開始掛起。 它一直掛着,它沒有提供任何結果。 這隻發生在lyrics007.com這是我需要的確切網站。它適用於谷歌。
請幫忙!
在此先感謝!
已解決!謝謝你們兩位! – Jobobj