1

当我使用类似的东西时:

URL url = new URL(a_url);
URLConnection url_conn = url.openConnection();
Object content = url_conn.getContent();

并且检索到的文件的 MIME 类型是我调试的 HTML 或 XML, content在运行时将包含以下实例:

sun.net.www.protocol.http.HttpURLConnection$HttpInputStream

现在,如果我想instanceof在那个实例上使用我该怎么办?

if (content instanceof PlainTextInputStream)
{
...
}  
else if(content instanceof ImageProducer)
{
...
}
else if(content instanceof ???) {}
4

1 回答 1

7

你不应该依赖于实现类。总有一天会坏掉的。

我认为这是您应该如何根据请求标头执行此操作:

URLConnection url_conn = url.openConnection();
httpURLConnection http_url_conn = (httpURLConnection )url.openConnection();

String contentType = http_url_conn.getContentType()

  if(contentType.contains("text/plain")){
    //handle plain text
    .....
  } else if(contentType.contains("images/jpeg")){
    //handle image
    ......
  } 

在此处阅读有关 Content-Type 的更多信息:

于 2012-07-13T09:52:06.640 回答