0
我想創建一個程序,可以排序與任何指定的谷歌搜索相關聯的結果數量。我需要一張大桌子,所以我想要使用一個循環。每次我嘗試它時,由於「System.Windows.Markup.XamlParseException」,調試器崩潰。試圖循環HttpWebRequest沒有成功
public long resultStat(string a)
{
var req = (HttpWebRequest)WebRequest.Create("https://www.google.ca/search?hl=fr&output=search&sclient=psy-ab&q=a" + a + "&btnK=");
using (req as IDisposable)
{
WebResponse rep = req.GetResponse();
Stream str = rep.GetResponseStream();
StreamReader rdr = new StreamReader(str);
string res = rdr.ReadToEnd();
rdr.Close();
//This is my code to get the number results (it works perfectly)
int index = res.IndexOf(">Environ");
int cond = 0;
string final = "";
try
{
while (res[++index] != '<')
{
if (cond-- == 0 && res[index] != '&')
{ final += res[index]; cond = 0; }
else if (res[index] == '&') cond = 5;
}
}
catch { return 0; }
string temp = "";
foreach (char i in final) if (i < 48 && i > 58) temp += i;
return Int64.Parse(temp);
}
}
這整個方法是在主只需使用一個for循環,例如:
public void main()
{
//Other code
for (int i = 0; i < 3; i++) resultStat(i.ToString()); // For example
//Other code
}
我知道這是問題,因爲只要我評論的循環,或將其降低到一個代表,沒有任何問題。我試過了:
HttpWebRequest()。Abort(); HttpWebRequest()。KeepAlive = false;
它沒有工作
你可以嘗試用'long l = 0替換'return Int64.Parse(temp);'; Int64.TryParse(temp,out l);返回l;'? – I4V
它的工作,但後來我試圖將每個結果存儲到一個列表中,並再次墜毀...但謝謝你的提示,我會尋找其他類似的錯誤 – Hadron