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中的主要内容,如果未能解决你的问题,请参考以下文章
iOS 如何处理传递给 AFHTTPSessionManager GET 方法的空格或特殊字符?