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

Convert the URL entered by user in textbox to URI format

我正在处理 windows phone 申请。用户输入他的服务器的 ip 和端口、数据库名称、用户名和密码。 在代码中,我访问了 'urltext.Text' 输入的 url,但弹出错误 'Invalid URI format'。如何将数据从文本框转换为有效的 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();
    }

我想从用户那里获取输入的 url 并放入 .Create() HttpWebRequest 请求 = (HttpWebRequest)WebRequest.Create(myuri);

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

Uri.CheckHostName

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

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

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

请试试这个

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

而不是

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

希望对你有用