是否有弹簧方式来检查网页是否仍然存在?

时间:2017-11-04 09:49:19

标签: java spring

我想让我的服务器检查亚马逊联盟链接是否仍然存在。 我遇到了这个SO线程,解释了如何做到这一点。 How do i check if a webpage exists with java?

但我想知道Spring是否有一个模块可以让我实现同样的目标。我已经看过Spring网络服务了,但是那些似乎正是我正在寻找的东西。有谁知道Spring能否做到这一点?

此致

2 个答案:

答案 0 :(得分:2)

您可以做的一件事是向页面发送一个简单的get请求,并根据您可以定义的响应状态来判断它是否在线。

答案 1 :(得分:1)

您可以使用Spring的RestTemplate来获取网站的标题 像这样:

RestTemplate restTemplate = new RestTemplate();
boolean pageExists = true;
HttpHeaders headers = null;
try {
  headers = restTemplate
      .headForHeaders("http://www.youtube.com");
} catch (RestClientException e) {
  pageExists = false;
}

System.out.println(headers);
// {Location=[https://www.youtube.com/], Content-Length=[0], Expires=[Tue, 27 Apr 1971 19:44:06 EST], X-Content-Type-Options=[nosniff], P3P=[CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en for more info."], Content-Type=[text/html; charset=utf-8], Cache-Control=[no-cache], X-XSS-Protection=[1; mode=block; report=https://www.google.com/appserve/security-bugs/log/youtube], Date=[Sat, 04 Nov 2017 10:21:53 GMT], Server=[YouTube Frontend Proxy], Set-Cookie=[VISITOR_INFO1_LIVE=rbqBq4s5uxo; path=/; domain=.youtube.com; expires=Thu, 05-Jul-2018 22:14:53 GMT; httponly, YSC=2VLECOABq0U; path=/; domain=.youtube.com; httponly]}

如果网站不存在,则会抛出带有404错误的RuntimeException。