2012-12-03 121 views
-1
try 
{ 

    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://www.site.ru/group/" + gr); 
    request.AllowAutoRedirect = false; 
    request.Method = "GET"; 
    request.CookieContainer = cookies; 
    request.UserAgent = "Opera/9.80 (Windows 7; U; en) Presto/2.9.168 Version/11.50"; 
    request.ContentType = "application/x-www-form-urlencoded"; 
    HttpWebResponse response_headers = (HttpWebResponse)request.GetResponse(); 
    System.IO.Stream stream = response_headers.GetResponseStream(); 
    System.IO.StreamReader sr = new System.IO.StreamReader(stream); 
    string response = sr.ReadToEnd(); 
    sr.Close(); 
    /*if (response_headers.Headers["Location"].Contains("alted")) 
    { 
     log("[-] GROUP is " + gr + " closed\r\n"); 
     return -2; 
    }*/ 
    string gash = Regex.Match(response, @"gwtHash:""(?<id>[^""]+)""").Groups["id"].Value; 
    string grpId = Regex.Match(response, @"state:""st.cmd=altGroupMain&amp;st.groupId=(?<id>[^""]+)""").Groups["id"].Value; 
} 
catch { log("[?] Can't parse ash and grpId\r\n"); return -1; } 

此代码在constraction if if {}被注释时成功运行。但是,当我删除评论并运行它,我收到[?] Can't parse ash and grpId 为什么?= \代码问题

+0

response_headers.Headers [“Location”]必须为null,因此会引发异常 –

回答

3

response_headers.Headers [“所在地”]必须为空,所以它引发异常。插入验证:

catch { log("[?] Can't parse ash and grpId\r\n"); return -1; } 

这是一个不好的做法:

if (response_headers.Headers["Location"] != null && response_headers.Headers["Location"].Contains("alted")) 
    { 
     log("[-] GROUP is " + gr + " closed\r\n"); 
     return -2; 
    } 
1

,因为你有一个catch块的一切各地所有的代码你得到的消息。删除try/catch块并让原始异常显示。这将使我们有可能看到真正的问题是什么。