URLConnection.getContent与HTML文件

xde*_*000 1 java servlets httpurlconnection

当我使用类似的东西:

URL url = new URL(a_url);
URLConnection url_conn = url.openConnection();
Object content = url_conn.getContent();
Run Code Online (Sandbox Code Playgroud)

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

sun.net.www.protocol.http.HttpURLConnection$HttpInputStream
Run Code Online (Sandbox Code Playgroud)

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

if (content instanceof PlainTextInputStream)
{
...
}  
else if(content instanceof ImageProducer)
{
...
}
else if(content instanceof ???) {}
Run Code Online (Sandbox Code Playgroud)

Ram*_*PVK 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
    ......
  } 
Run Code Online (Sandbox Code Playgroud)

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