我尝试使用以下代码查找是否存在网址。要求是在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.我能知道如何解决这个问题吗?提前谢谢。
答案 0 :(得分:0)
包含空格的网址无效。从可能包含空格的文件名创建正确编码的URL的正确方法是URI.toASCIIString(),
,然后将其传递给new URL(),
,确保使用带有多个参数的URI构造函数,以便文件名部分被编码:请参阅Javadoc。
但是我质疑这个要求。测试任何资源是否可用的最佳方法是尝试使用它。在这种情况下,如果存在,您可能会从URL中读取,所以只需执行此操作并捕获FileNotFoundException
。