0

テキスト ボックスから weblclient インスタンスに uri を送信しようとしています。問題は、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 に答える