将用户在文本框中输入的URL转换为URI格式

时间:2015-05-25 07:56:42

标签: c# windows windows-phone-8

我正在开发Windows手机应用程序。用户输入其服务器的IP和端口,数据库名称,用户名和密码。 在代码中我访问'urltext.Text'输入的URL但错误弹出'无效的URI格式'。如何将数据从文本框转换为有效的URI格式。

private void SendDataButton_Click(object sender, RoutedEventArgs e)
    {
        Uri myuri = new Uri(urltext.Text);
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myuri);
        Debug.WriteLine("Hello I m here");
        Debug.WriteLine(request.GetType());
        request.BeginGetResponse(new AsyncCallback(FinishWebRequest), request);
        Console.ReadLine();
    }

enter image description here

我想从用户那里输入url并输入.Create() HttpWebRequest request =(HttpWebRequest)WebRequest.Create(myuri);

3 个答案:

答案 0 :(得分:4)

您应该始终验证用户输入 在这种情况下,您可以使用静态方法IsWellFormedUriString来检查输入字符串:

if(Uri.IsWellFormedUriString(Input, UriKind.Absolute)) 
{
    Uri MyUri = new Uri(Input);     
    // Do your stuff
}
else
{
   // Alert the client
}

答案 1 :(得分:0)

您可以使用Uri类的CheckHostName静态方法来验证文本。这可以是IPv4或IPv6地址或Internet主机名。

  

Uri.CheckHostName

https://msdn.microsoft.com/en-us/library/system.uri.checkhostname%28v=vs.110%29.aspx

答案 2 :(得分:0)

请试试这个

Uri myuri = new Uri(urltext.Text);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myuri);

而不是

HttpWebRequest request =(HttpWebRequest)WebRequest.Create(urltext.Text);

希望它对你有用