如何确定文件是否是来自URL的html?

时间:2009-06-30 19:21:26

标签: java html url

给定一个URL,如何判断引用的文件是否和html文件?

显然,它是一个html文件,如果它以.html或/结尾,但也有.jsp文件,所以我想知道其他扩展可能是为了html。

或者,如果可以从Java中的URL对象轻松获取此信息,那么这对我的目的就足够了。

7 个答案:

答案 0 :(得分:20)

你不能。但您可以向服务器询问标题并检查内容类型以查看它是否为text / html。

答案 1 :(得分:10)

仅从您不能的网址中,想一想以下网址:

所有这些都返回HTML内容。唯一可靠的方法是向服务器询问资源,并检查Content-TYpe标头。最好用于向服务器发送HEAD请求,而不是GET或POST - 它只会为您提供标题而不包含内容。

  URL url = ...
  HttpURLConnection urlc = (HttpURLConnection)url.openConnection();
  urlc.setAllowUserInteraction( false );
  urlc.setDoInput( true );
  urlc.setDoOutput( false );
  urlc.setUseCaches( true );
  urlc.setRequestMethod("HEAD");
  urlc.connect();
  String mime = urlc.getContentType();
  if(mime.equals("text/html") {
    // do your stuff
  }

答案 2 :(得分:7)

你做不到。使用以.jpeg,.gif或.mp3结尾的网址提供html文件没有任何问题。要知道的唯一方法是获取URL并查看Content-Type标头以查看它是否为text / html(但由于配置不当的Web服务器,这甚至不是100%准确)。

答案 3 :(得分:4)

从根本上说,URL只是一个地址。有许多有用的,有意义的约定可以用来破译它们可能包含的内容,但是当它归结为它时,Web服务器可以自由地返回它想要的给定URL的任何类型的东西。甚至不询问服务器,询问返回的内容,并检查它是100%肯定的方式来了解它是什么类型的文件。服务器可以根据请求,时间或日期或其所有者的想法轻松更改它指向的文件类型。

有一些很好的基本指导方针可以在大多数时间使用,但我甚至不愿提及它们,因为它们绝对不可靠。

但是,有一些好消息。如果你实际上是从服务器请求数据,就像其他一些答案所指出的那样,它会准确地告诉你它为你提供了什么样的东西(对于这个特定的交换)。它会在名为“Content-Type”的字段中为您提供MIME类型。如果它是text / html,那么你自己有一个html文档(不是图像,不是xhtml文档,HTML)。

答案 4 :(得分:2)

简单地说。你不能。

有REST样式的URL,如

http://yourserver.com/service/givemehtml/

为你提供HTML。

答案 5 :(得分:1)

HTML - 超文本标记语言,这意味着html是一个标准,引用* .html意味着有静态HTML页面,其他* .jsp,* .php,* .asp等,它们生成动态html。所以你无法找到,你可以尝试查看内容类型,但这样你仍然会错过一些页面。

答案 6 :(得分:0)

你做不到。有时某些URL以.html扩展名结尾,但它实际上不是html文件。就像在spring操作中我通常使用扩展名.html,所以它看起来像来自url的html文件,但事实并非如此。所以实际上你无法确定它。