我想让我的服务器检查亚马逊联盟链接是否仍然存在。 我遇到了这个SO线程,解释了如何做到这一点。 How do i check if a webpage exists with java?
但我想知道Spring是否有一个模块可以让我实现同样的目标。我已经看过Spring网络服务了,但是那些似乎正是我正在寻找的东西。有谁知道Spring能否做到这一点?
此致
答案 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。