mirror of
https://e.coding.net/circlecloud/Yum.git
synced 2024-11-22 06:18:46 +00:00
fix: 修复下载地址302/301跳转的问题
Signed-off-by: 502647092 <admin@yumc.pw>
This commit is contained in:
parent
56131b1274
commit
fb1811d9f4
@ -3,8 +3,10 @@ package pw.yumc.Yum.managers;
|
|||||||
import java.io.BufferedInputStream;
|
import java.io.BufferedInputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
|
import java.net.HttpURLConnection;
|
||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
import java.net.URLConnection;
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
@ -146,14 +148,15 @@ public class DownloadManager {
|
|||||||
try {
|
try {
|
||||||
sender.sendMessage("§6开始下载: §3" + getFileName(url));
|
sender.sendMessage("§6开始下载: §3" + getFileName(url));
|
||||||
sender.sendMessage("§6下载地址: §3" + url.toString());
|
sender.sendMessage("§6下载地址: §3" + url.toString());
|
||||||
final int fileLength = url.openConnection().getContentLength();
|
final URLConnection uc = reload(sender, url.openConnection());
|
||||||
|
final int fileLength = uc.getContentLength();
|
||||||
if (fileLength < 0) {
|
if (fileLength < 0) {
|
||||||
sender.sendMessage("§6下载: §c文件 " + file.getName() + " 获取长度错误(可能是网络问题)!");
|
sender.sendMessage("§6下载: §c文件 " + file.getName() + " 获取长度错误(可能是网络问题)!");
|
||||||
sender.sendMessage("§6文件: §c" + file.getName() + " 下载失败!");
|
sender.sendMessage("§6文件: §c" + file.getName() + " 下载失败!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
sender.sendMessage("§6文件长度: §3" + fileLength);
|
sender.sendMessage("§6文件长度: §3" + fileLength);
|
||||||
in = new BufferedInputStream(url.openStream());
|
in = new BufferedInputStream(uc.getInputStream());
|
||||||
if (!file.getParentFile().exists()) {
|
if (!file.getParentFile().exists()) {
|
||||||
file.getParentFile().mkdirs();
|
file.getParentFile().mkdirs();
|
||||||
sender.sendMessage("§6创建新目录: §d" + file.getParentFile().getAbsolutePath());
|
sender.sendMessage("§6创建新目录: §d" + file.getParentFile().getAbsolutePath());
|
||||||
@ -259,4 +262,22 @@ public class DownloadManager {
|
|||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 302 301跳转处理
|
||||||
|
*
|
||||||
|
* @param 跳转地址
|
||||||
|
* @return 最终地址
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
private URLConnection reload(final CommandSender sender, final URLConnection uc) throws Exception {
|
||||||
|
final HttpURLConnection huc = (HttpURLConnection) uc;
|
||||||
|
// 302, 301
|
||||||
|
if (huc.getResponseCode() == HttpURLConnection.HTTP_MOVED_TEMP || huc.getResponseCode() == HttpURLConnection.HTTP_MOVED_PERM) {
|
||||||
|
final String url = huc.getHeaderField("Location");
|
||||||
|
sender.sendMessage("§6跳转至地址: §3" + url);
|
||||||
|
return reload(sender, new URL(url).openConnection());
|
||||||
|
}
|
||||||
|
return uc;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user