Java 能够获取Box文件夹项目,但无法使用API从Box下载文件

Java 能够获取Box文件夹项目,但无法使用API从Box下载文件,java,networking,firewall,box-api,box,Java,Networking,Firewall,Box Api,Box,我试图通过传递文件id从Box下载文件,但出现以下错误。尽管我能够从Box中获取文件夹项目,并且能够成功获取文件夹中的所有文件名,这表明我的应用程序和Box api之间存在网络连接。同样,同一代码在本地计算机中也能正常工作,但在代码迁移到云时不能正常工作 下载API是否使用与获取文件夹项目不同的端口?Box API文档说明所有API都使用https INFO | jvm 1 | main | 2019/08/08 11:26:32.626 | com.box.sdk.BoxAPI

我试图通过传递文件id从Box下载文件,但出现以下错误。尽管我能够从Box中获取文件夹项目,并且能够成功获取文件夹中的所有文件名,这表明我的应用程序和Box api之间存在网络连接。同样,同一代码在本地计算机中也能正常工作,但在代码迁移到云时不能正常工作

下载API是否使用与获取文件夹项目不同的端口?Box API文档说明所有API都使用https

INFO   | jvm 1    | main    | 2019/08/08 11:26:32.626 | com.box.sdk.BoxAPIException: Couldn't connect to the Box API due to a network error.
INFO   | jvm 1    | main    | 2019/08/08 11:26:32.626 |         at com.box.sdk.BoxAPIRequest.trySend(BoxAPIRequest.java:551)
INFO   | jvm 1    | main    | 2019/08/08 11:26:32.626 |         at com.box.sdk.BoxAPIRequest.handleRedirect(BoxAPIRequest.java:615)
INFO   | jvm 1    | main    | 2019/08/08 11:26:32.626 |         at com.box.sdk.BoxAPIRequest.trySend(BoxAPIRequest.java:571)
INFO   | jvm 1    | main    | 2019/08/08 11:26:32.627 |         at com.box.sdk.BoxAPIRequest.send(BoxAPIRequest.java:354)
INFO   | jvm 1    | main    | 2019/08/08 11:26:32.627 |         at com.box.sdk.BoxAPIRequest.send(BoxAPIRequest.java:329)
INFO   | jvm 1    | main    | 2019/08/08 11:26:32.627 |         at com.box.sdk.BoxFile.download(BoxFile.java:295)
INFO   | jvm 1    | main    | 2019/08/08 11:26:32.627 |         at com.box.sdk.BoxFile.download(BoxFile.java:283)
INFO   | jvm 1    | main    | 2019/08/08 11:26:32.627 |         at com.ge.hc.integration.service.impl.BoxIntegrationSerImpl.getBoxFileByFileID(BoxIntegrationSerImpl.java:188)
INFO   | jvm 1    | main    | 2019/08/08 11:26:32.727 | Caused by: java.net.ConnectException: Connection timed out (Connection timed out) (local port 38216 to address 0.0.0.0, remote port 443 to address 107.152.27.200)
INFO   | jvm 1    | main    | 2019/08/08 11:26:32.727 |         at java.net.PlainSocketImpl.socketConnect(Native Method)
INFO   | jvm 1    | main    | 2019/08/08 11:26:32.727 |         at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
INFO   | jvm 1    | main    | 2019/08/08 11:26:32.727 |         at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
INFO   | jvm 1    | main    | 2019/08/08 11:26:32.727 |         at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
INFO   | jvm 1    | main    | 2019/08/08 11:26:32.727 |         at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
INFO   | jvm 1    | main    | 2019/08/08 11:26:32.727 |         at java.net.Socket.connect(Socket.java:857)
INFO   | jvm 1    | main    | 2019/08/08 11:26:32.727 |         at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:666)
INFO   | jvm 1    | main    | 2019/08/08 11:26:32.727 |         at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
INFO   | jvm 1    | main    | 2019/08/08 11:26:32.727 |         at sun.net.www.http.HttpClient.openServer(HttpClient.java:474)
INFO   | jvm 1    | main    | 2019/08/08 11:26:32.727 |         at sun.net.www.http.HttpClient.openServer(HttpClient.java:569)`
用于文件下载的代码段(在boxFile.download(stream);)中抛出错误的代码段)--

获取文件夹项(正在工作并打印文件名的项)的代码段--

public List getFolderItems(String accessToken,String folderID){
List fileList=new ArrayList();
BoxAPIConnection-boxConnection=新的BoxAPIConnection(accessToken);
BoxFolder文件夹=新的BoxFolder(boxConnection,folderID);
对于(BoxItem.Info itemInfo:文件夹){
if(itemInfo instanceof BoxFile.Info){
Info fileInfo=(BoxFile.Info)itemInfo;
fileList.add(fileInfo);
LOG.info(“***文件名-”+fileInfo.getName());
}else if(itemInfo instanceof BoxFolder.Info){
folder.Info folderInfo=(BoxFolder.Info)itemInfo;
}
}
返回文件列表;
}

Box在不同于API(
API.Box.com
)的域(
dl.boxcloud.com
)上承载文件内容。当您访问时,API将返回boxcloud.com域上的临时URL。JavaSDK会自动按照此重定向获取文件内容。所有请求都通过端口443(HTTPS)发出

这可能只是一个暂时的错误。如果它持续存在,您可能会检查您的云服务是否配置了任何防火墙规则。以下是此操作涉及的域和IP地址:

api.box.com
:107.152.26.197107.152.27.197

dl.boxcloud.com
:107.152.26.200107.152.27.200


注意:错误日志中会出现
dl.boxcloud.com
IP,这表明SDK正在按照预期的重定向进行操作。

您可以发布用于下载文件的部分代码吗?嗨,john,添加了代码片段
String fileDownloadLocation = siteConfigService.getProperty(FILEDOWNLOADLOCATION);
File file = null;
BoxAPIConnection boxConnection = new BoxAPIConnection(accessToken);

    FileOutputStream stream;
    try 
    {
        BoxFile boxFile = new BoxFile(boxConnection, fileID);
        BoxFile.Info info = boxFile.getInfo();
        LOG.info("downloading file to -"+fileDownloadLocation+info.getName());
        stream = new FileOutputStream(fileDownloadLocation+info.getName());
        //LOG.info(stream);
        boxFile.download(stream);
        stream.close();
        file = new File(fileDownloadLocation+info.getName());
    } 
public List<Info> getFolderItems(String accessToken, String folderID) {
    List<Info> fileList = new ArrayList<Info>();
    BoxAPIConnection boxConnection = new BoxAPIConnection(accessToken);
    BoxFolder folder = new BoxFolder(boxConnection, folderID);

    for (BoxItem.Info itemInfo : folder) {
        if (itemInfo instanceof BoxFile.Info) {
            BoxFile.Info fileInfo = (BoxFile.Info) itemInfo;
            fileList.add(fileInfo);
            LOG.info("***FILE NAME-"+fileInfo.getName());
        } else if (itemInfo instanceof BoxFolder.Info) {
            BoxFolder.Info folderInfo = (BoxFolder.Info) itemInfo;
        }
    }
    return fileList;
}