在Java中检测损坏的URL(HTTP 404)的最有效方法是什么?我想循环做这件事,并尽可能缩短时间。在Java中高效检测损坏的URL
1
A
回答
1
有很多不同的方式,其中URL可以被打破:
- 语法无效
- 包含一个不存在的域
- 服务器不可用
- 服务器不接受连接
- 服务器响应错误
除了第一个,所有这些可能需要相对较长的时间(平均可能超过一秒),并且由于您正在与另一台计算机进行通信,所以无法加快速度。
您唯一能做的就是使用thread pool并行检查多个URL。
2
你只能在请求URL之后检测到404:你将得到一个包含代码的头(200或301用于重定向,或404用于缺失文件),你可以检查它。
所以你必须做的请求,并等待可能的404
有低于一个相当不错的评论不应被跳过,所以我在这里重复它: 可能的优化(在现有URL的情况):使用HEAD请求而不是GET。
0
您可以建立URL连接,通过捕获异常并检查HTTP状态代码来验证URL是否中断。如果不抛出异常并且HTTP状态为200,则URL可以。
但要小心!有时,URL被破坏,但应用程序返回状态为200的可读错误页面。 例如,www.somecompany.com网站存在,但www.somecompany.com/foo.html页面不再存在。当你试图到达那里时,你会得到“页面不存在”的消息,但HTTP状态是200.这可以通过仅解析页面内容来解决(有时)。
相关问题
- 1. 高效检测损坏的jpeg文件?
- 2. 在Codeigniter中检测损坏的链接
- 3. java udp检测数据包损坏
- 4. 检测到堆栈损坏
- 5. 检测到堆损坏
- 6. 检测到堆损坏| C++
- 7. 检测损坏的png文件的有效方法?
- 8. 检测图像是否损坏或损坏
- 9. 检测大量的损坏钱
- 10. 检测损坏的OGG文件
- 11. 检测损坏的Flash文件
- 12. 检测是否图像URL损坏或不JQUERY
- 13. 堆损坏检测:普通块(#176)后
- 14. jemalloc未检测内存损坏
- 15. 堆损坏检测:普通块(#126)后
- 16. 布尔检测档案是否损坏
- 17. 检测并警告web.config何时损坏
- 18. 正常块后检测到堆损坏
- 19. 在bash脚本中检测损坏的图像
- 20. Java ConcurrentHashMap损坏值
- 21. Java的检测URL
- 22. 检查损坏的链接
- 23. 在托管服务中检测到CRT调试堆损坏
- 24. Java SocketException损坏的管道
- 25. 损坏的数据集.NET中的故障检测
- 26. Linux 3.0:“检测到glibc”中止 - 调整检测到的损坏功能?
- 27. 在Java中检测URL的编码
- 28. 如何在上传后检测损坏或崩溃的图像
- 29. Java中的高效Fisher精确测试
- 30. Java文件损坏问题
定义“破损的URL”! – 2011-01-26 09:55:56
可能你需要看看http://stackoverflow.com/questions/4177864/checking-a-url-exist-or-not – 2011-01-26 09:58:43