我正在尝试将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 );
}
}
答案 0 :(得分:0)
首先将您的代码移出TextChanged,否则它将针对输入的每个字符触发。
其次,您必须编写用户输入内容的解析例程。您可以随时检查TextBoxUrl.Text.StartsWith(“http”)是否未将其添加到字符串的开头。
我会建议使用System.Uri.IsWellFormedUriString(TextBoxUrl.Text)更好一些。如果它通过然后调用你的Load方法,否则让他们修复它或添加“http”等。