2012-07-09 83 views
1

大家都知道有很多文件主机的网站,有没有办法处理其中一个站点上的文件的http链接,如果文件存在或者http链接是否存在,就检索结果。我知道也许有些文件主机网站使用自己的API,但我想要更通用的方式。如何处理http链接?

编辑:

所以我的理解有一个服务器上没有文件,这只是我要读的响应,并且正确读取它。我想问另一件事,重定向怎么办?这是否意味着如果我得到了重定向到其他链接的链接的响应,我会从响应中获得最终目标?

+2

您可以使用'HttpRequest'来发出请求并读取响应。 “文件”是否存在取决于服务器作为响应发送的内容。 HTTP中的“文件”实际上不存在,只有请求和响应(包含标题和内容)。 – David 2012-07-09 11:14:36

回答

1

你可以找出一个文件中使用存在存在方法:

bool System.IO.File.Exists(string path) 

///

,以找出一个文件删除服务器上存在,你可以试试这个:

WebRequest request; 
WebResponse response; 
String strMSG = string.Empty; 
request = WebRequest.Create(new Uri(“http://www.yoururl.com/yourfile.jpg”)); 
request.Method = “HEAD”; 

try 
{ 
    response = request.GetResponse(); 
    strMSG = string.Format(“{0} {1}”, response.ContentLength,   response.ContentType); 
} 
catch (Exception ex) 
{ 
    //In case of File not Exist Server return the (404) Error 
    strMSG = ex.Message; 
} 

看到this

+1

这假定服务器将以404错误或任何错误进行响应。它可能不会,我们不知道。另外,这不是很好的异常处理。在'Exception'对象中可能会有更多有用的信息,您只是丢掉了。 – David 2012-07-09 11:41:47

1

如果我理解正确的话,你是TR要告诉一个给定的URL是否有内容。

使用

WebClient

类。

打电话给网址,如果你收到200,你很好走。 404例外或类似情况可能意味着链接不好。

或者,更好的方法是做一个HEAD http请求。有关更多信息,请参阅 here