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

Posted

技术标签:

【中文标题】java - 如何查找包含特殊字符或空格的url是不是存在于java中【英文标题】:How to find if url containing special characters or space exists in javajava - 如何查找包含特殊字符或空格的url是否存在于java中 【发布时间】:2013-08-01 06:34:11 【问题描述】:

我尝试使用以下代码查找 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。我能知道如何解决这个问题吗?提前致谢。

【问题讨论】:

您首先解码有什么具体原因吗?如果 url 中有特殊字符,它们将在此处被解码,并导致 404。您可能希望连接到编码的 url。 哎呀..我忘了删除那行。我现在已经编辑了程序。 【参考方案1】:

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

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

【讨论】:

以上是关于java - 如何查找包含特殊字符或空格的url是不是存在于java中的主要内容,如果未能解决你的问题,请参考以下文章

经验总结 链接url中各类特殊字符

Linux如何查找处理文件名后包含空格的文件

iOS 如何处理传递给 AFHTTPSessionManager GET 方法的空格或特殊字符?

URL中的特殊字符

如何在 Java 中构建正则表达式来检测字符串的空格或结尾?

编码特殊字符以传入url并由javascript读取[重复]