我正在尝试将 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"等。