2012-08-03 93 views
2

我试图使用正则表达式来检索网站的名称。但是,当我运行该程序时,出现错误时使用“路径中的非法字符”。代码如下:与web.downloadstring路径中的非法字符

private void button1_Click(object sender, EventArgs e) 
{ 
    List<string> givenNames = new List<string>(); 

    WebClient web = new WebClient(); 

    for (int i = 10000; i <= 33852; i++) 
    { 
     string numberurl = i.ToString(); 
     string mainurl = "www.cpso.on.ca/docsearch/details.aspx?view=1&id=+" + numberurl; 
     String html = web.DownloadString(mainurl); 

     Match m = Regex.Match(html, @"</strong>\s*(.+?)\s*&nbsp;", RegexOptions.Singleline); 

     string givenName = m.Groups[1].Value; 
     givenNames.Add(givenName); 
    } 
    listBox1.DataSource = givenNames; 
} 

错误发生在String html = web.DownloadString(mainurl);。我尝试使用HttpUtility.UrlEncode但它仍然无法正常工作。我很感激帮助。

+5

您是否尝试在您的网址中添加“http://”? – 2012-08-03 17:30:40

+0

D'oh!那解决了这个问题哈哈。谢谢:D – 2012-08-03 17:32:28

+1

当然,在路径开始处没有协议意味着在路径中有非法字符。完全自我解释的错误信息,做得很好微软。 – glenatron 2014-12-03 17:26:32

回答

9

您需要在URL中包含http://。

string mainurl = "http://www.cpso.on.ca/docsearch/details.aspx?view=1&id=+" + numberurl; 
相关问题