code: protected <T extends AbstractResource> T fillResourceFromURL(URLConnection con, T resource) throws IOException {
  		resource.fill(con);
  		resource.getAdditionalHeaders().putAll(getAdditionalHeaders()); // carry over additional headers TODO don't do it if there are no additional headers
  		return resource;
  	}
docs: Get the content from the URLConnection, create a Resource representing the content and carry over some metadata like HTTP Result and location header.
  
  @param <T extends AbstractResource> the resource that will be created and filled
  @param con
  the URLConnection used to get the data
  @param resourceClass
  the resource class to instantiate
  @return the new resource
  @throws IOException