修复图片Key缓存冷启动并关闭异常HTTP响应
This commit is contained in:
@@ -194,10 +194,13 @@ public class GalleryUtil {
|
||||
|
||||
public static String getMpvKey(String url){
|
||||
String gid = String.valueOf(parseGid(url));
|
||||
return gid2MpvKey.computeIfAbsent(gid, k -> {
|
||||
String key = gid2MpvKey.get(gid);
|
||||
if (key == null) {
|
||||
// refreshMpvKey writes the cache itself; never call it inside computeIfAbsent.
|
||||
refreshMpvKey(url);
|
||||
return gid2MpvKey.get(k);
|
||||
});
|
||||
key = gid2MpvKey.get(gid);
|
||||
}
|
||||
return key;
|
||||
}
|
||||
|
||||
public static void refreshMpvKey(String url) {
|
||||
@@ -210,7 +213,7 @@ public class GalleryUtil {
|
||||
content = requests(mpvUrl, "get", header, null);
|
||||
}catch (Exception e){
|
||||
log.error("刷新mpvKey失败, url: {}", url, e);
|
||||
gid2MpvKey.put(parseGid(url) + "", null);
|
||||
gid2MpvKey.remove(parseGid(url) + "");
|
||||
return;
|
||||
}
|
||||
Document document = Jsoup.parse(content);
|
||||
@@ -343,22 +346,21 @@ public class GalleryUtil {
|
||||
}
|
||||
httpResponse = httpClient.execute(httpPost);
|
||||
}
|
||||
HttpEntity responseEntity = httpResponse.getEntity();
|
||||
int statusCode = httpResponse.getStatusLine().getStatusCode();
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
|
||||
if(statusCode == 200){
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(responseEntity.getContent()));
|
||||
String str;
|
||||
while((str = reader.readLine()) != null)
|
||||
stringBuilder.append(str).append("\n");
|
||||
} else{
|
||||
log.warn("{}:{}", url, statusCode);
|
||||
try (httpResponse) {
|
||||
HttpEntity responseEntity = httpResponse.getEntity();
|
||||
int statusCode = httpResponse.getStatusLine().getStatusCode();
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
if (statusCode == 200 && responseEntity != null) {
|
||||
try (BufferedReader reader = new BufferedReader(new InputStreamReader(responseEntity.getContent()))) {
|
||||
String str;
|
||||
while ((str = reader.readLine()) != null)
|
||||
stringBuilder.append(str).append("\n");
|
||||
}
|
||||
} else {
|
||||
log.warn("{}:{}", url, statusCode);
|
||||
}
|
||||
return stringBuilder.toString();
|
||||
}
|
||||
|
||||
httpResponse.close();
|
||||
|
||||
return stringBuilder.toString();
|
||||
}
|
||||
|
||||
public static Integer parseGid(String link){
|
||||
|
||||
Reference in New Issue
Block a user