检查网络链接的有效性

时间:2013-08-30 20:57:00

标签: c# winforms

我有一个winform我正在使用通过在线保存的PHP脚本连接到服务器。我做了它,所以我的程序可以将这个地址存储在winform本身的设置中,如下所示:

http://server.webhost.com/file/uploadimage.html

然后,当我将此地址传递给我的程序时,我只需调用以下内容:

Settings.Default.ServerAddress;

然后将我的文件发送到服务器我有以下方法调用如下:

UploadToServer.HttpUploadFile(Settings.Default.ServerAddress , sfd.FileName.ToString(), "file", "image/jpeg", nvc);

但是我不知道如何检查以确保输入的地址实际上是有效的。是否有实现这一目标的最佳做法?

2 个答案:

答案 0 :(得分:1)

使用System.Uri(http://msdn.microsoft.com/en-us/library/system.uri.aspx)来解析它。如果它不是“有效”,你会得到一个例外。但是,正如其他人评论状态,取决于你想要什么样的“有效”,这可能或者可能不足以满足你正在做的事情。

答案 1 :(得分:1)

确保URL正常工作的一种方法是实际请求内容,您可以通过仅发出HEAD类型的请求来改善它。像

try
{
    HttpWebRequest request = HttpWebRequest.Create("yoururl") as HttpWebRequest;
    request.Method = "HEAD"; //Get only the header information -- no need to download any content
    using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
    {
        int statusCode = (int)response.StatusCode;
        if (statusCode >= 100 && statusCode < 400) //Good requests
        {
        }
        else //if (statusCode >= 500 && statusCode <= 510) //Server Errors
        {
            //Hard to reach here since an exception would be thrown 
        }
    }
}
catch (WebException ex)
{
    //handle exception
    //something wrong with the url
}