如何查找java中是否存在包含特殊字符或空格的url

时间:2013-07-31 16:04:31

标签: java http url networking file-exists

我尝试使用以下代码查找是否存在网址。要求是在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.我能知道如何解决这个问题吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

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

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