@MethodService
public void downloadFile() throws MalformedURLException {
    String urlString = "http://127.0.0.1:8081/test.jar";
    // 创建URL对象
    URL url = new URL(urlString);

    ByteArrayOutputStream outputStream = getMeta().getResponse().getByteArrayoutputStream();
    try (InputStream inputStream = url.openStream()) {
        // 打开并获取输入流
        if (inputStream != null) {
            // 现在可以从输入流中读取数据,这里只是简单打印
            byte[] buffer = new byte[1024];
            int read;
            while ((read = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, read);
            }
        } else {
            outputStream.write("无法打开URL连接或读取资源".getBytes());
        }
    } catch (IOException ignore) {
    }
    String encodedFileName = null;
    try {
        encodedFileName = URLEncoder.encode("test.jar", StandardCharsets.UTF_8.toString());
    } catch (UnsupportedEncodingException ignore) {
    }

    // 设置Content-Disposition头,让浏览器以附件形式下载,并指定了文件名
    getMeta().getResponse().setHeader("Content-Disposition", "attachment; filename=\"" + encodedFileName + "\"");

    // 指定 ContentType
    getMeta().getResponse().setContentType("application/java-archive");
    // 需要设置 @file_return 参数,才会返回文件流给前端,否则统一返回 JSON
    getMeta().addArgument("@file_return", "true");
}