0

我尝试使用以下代码查找 url 是否存在。要求是在url中查找文件是否存在。

    try{
         HttpURLConnection.setFollowRedirects(false);
         HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection();
         con.setRequestMethod("HEAD");
         responseCode = con.getResponseCode();
         return Response.ok(Integer.toString(responseCode)).build();
    }
    catch(Exception e){
        return Response.ok(e.getMessage()).build();
    }

如果 url 不包含任何空格/特殊字符,这将非常有效。但如果有,它总是返回代码 404。我能知道如何解决这个问题吗?提前致谢。

4

1 回答 1

0

包含空格的 URL 无效。从可能包含空格的文件名创建正确编码的 URL 的正确方法是 URI.toASCIIString(),,然后将其传递给new URL(),确保使用带有多个参数的 URI 构造函数,以便对文件名部分进行编码:请参阅Javadoc

但是我质疑这个要求。测试任何资源是否可用的最佳方法是尝试使用它。在这种情况下,如果 URL 存在,您可能会从 URL 中读取,所以只需执行此操作并捕获FileNotFoundException.

于 2013-07-31T23:41:50.913 回答