web.downloadstring的路径中存在非法字符

本文关键字:存在 非法 字符 路径 downloadstring web | 更新日期: 2024-10-19 10:13:26

我正在尝试使用regex从网站检索名称。然而,当我运行程序时,使用"路径中的非法字符"会出现错误。这是代码:

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,但它仍然不起作用。我很感激你的帮助。

web.downloadstring的路径中存在非法字符

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

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

我的URL是从API端点获取的,因此它被返回为带引号的字符串,如"'"http://someurl.com/somefile.txt'""。引用的字符串是WebClient在尝试下载文件时出错的原因。

为了修复它,我在这个字符串上调用了方法myUrl.Trim('"'),使其删除字符串开头和结尾的引号。

在这之后,字符串变成了"http://someurl.com/somefile.txt"(没有内部引号),然后web客户端能够成功地从URL下载文件。