为了账号安全,请及时绑定邮箱和手机立即绑定

将文件下载到我们正在执行 API 的系统中

将文件下载到我们正在执行 API 的系统中

杨__羊羊 2021-09-29 10:08:59
我需要从第三方 API 下载文件。我在我的应用程序中编写了一个 API,它调用第三方 API 并下载文件。我能够下载文件并成功解压缩。当我点击我的 API 时,这些文件被下载到部署代码的 tomcat 服务器中。但我想将这些文件下载到我正在执行 API 的系统中。假设,如果我将该代码部署到测试环境服务器并使用来自本地系统的 curl 命令执行我的 API,那么文件应该被下载到我的本地系统中。无论如何我可以在Java中实现这一点吗?public class SnapshotFilesServiceImplCopy {public static final ILogger LOGGER = FWLogFactory.getLogger();private RestTemplate mxRestTemplate = new RestTemplate();public void listSnapShotFiles(String diId, String snapshotGuid) {    LOGGER.debug("Entry - SnapshotFilesServiceImpl: FI=" + diId + " snapshotGuid=" + snapshotGuid);    ResponseEntity responseEntity = null;    HttpEntity entity = new HttpEntity(CommonUtil.getReportingAPIHeaders());    String resourceURL = "files_url";    try {        responseEntity = mxRestTemplate.exchange(resourceURL, HttpMethod.GET, entity, String.class);    } catch (RestClientException re) {        if (re instanceof HttpStatusCodeException) {            //TO be handled        }    }    String data = (String) responseEntity.getBody();    try {        Object obj = new JSONParser().parse(data);        JSONObject jsonObject = (JSONObject) obj;        JSONArray jsonArray = (JSONArray) jsonObject.get("accounts");        for (int i = 0; i < jsonArray.size(); i++) {            String accountFileURL = (String) jsonArray.get(i);            downloadAccountsData(diId, accountFileURL);        }    } catch (ParseException e) {        e.printStackTrace();    }}
查看完整描述

2 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

假设,如果我将该代码部署到 QA 环境中并使用 curl 命令从我的本地系统执行我的 API,那么文件应该被下载到我的本地系统中。无论如何我可以在Java中实现这一点吗?

如果一个或多个文件作为 HTTP 响应返回到您使用curl.

或者……我想……如果您在本地系统上设置了一个 HTTP 服务器,并且 QA 系统通过向 HTTP 服务器发出 HTTP 请求(API 调用)来“传送”文件(实际上是反向上传!) .


查看完整回答
反对 回复 2021-09-29
?
MYYA

TA贡献1868条经验 获得超4个赞

您可以将从第三方 API 接收到的文件存储在一个文件 ( new File()) 对象中,然后可以将该文件对象保存在所需位置。我需要查看从第三方 API 下载文件的代码片段才能准确回答。

您正在做的是将文件保存在服务器中(因为 tomcat 中的 Java 程序无法访问客户端机器),而不是将其返回给调用您的 API 的客户端。您需要打开另一个输出流,并使用该流将文件数据返回到客户端计算机。您可以参考教程,了解如何使用流下载文件。


查看完整回答
反对 回复 2021-09-29
  • 2 回答
  • 0 关注
  • 219 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号