0

我正在尝试将 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 );

    }



}
4

1 回答 1

0

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

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

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

于 2012-10-09T22:37:51.070 回答