webclient.openread() URI 格式问题



我正在尝试将 uri 从文本框发送到 weblclient 实例。问题是,如果我发送 www.stackoverflow.com 它会引发格式异常。如何解决这个问题?我无法攻击 http://因为如果用户粘贴正确的格式,那么动态附加位会导致问题。

 protected void TextBoxUrl_TextChanged(object sender, EventArgs e)
{
    HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
    using (var wc = new System.Net.WebClient())
    {
        doc.Load(wc.OpenRead(TextBoxUrl.Text),Encoding .UTF8 );
    }

}

首先将代码移出 TextChanged,否则它将为输入的每个字符触发。

其次,您必须编写用户输入内容的解析例程。您可以随时检查 TextBoxUrl.Text.StartsWith("http") 以及它是否没有将其添加到字符串的开头。

相反,我会推荐一些更好的东西,比如使用System.Uri.IsWellFormedUriString(TextBoxUrl.Text)。如果它通过,则调用您的 Load 方法,否则让他们修复它或添加"http"等。

最新更新