开发者社区> 问答> 正文

钉钉文件下载时,下载出来的文件都是XXX.file文件,在哪获取类型和转换?

代码如下

public Map<String, Object> downloadMedia(String corpId, String mediaId,
            String fileDir) throws Exception {
        String url = Constants.getRequestHead() + DOWNLOAD_URL
                + "?access_token="
                + vtxDTCorpInfoService.getAccessToken(corpId) + "&media_id="
                + mediaId;
        HttpGet httpGet = new HttpGet(url);
        Closeable HttpResponse response = null;
        Closeable HttpClient httpClient = HttpClients.createDefault();
        RequestConfig requestConfig = RequestConfig.custom()
                .setSocketTimeout(2000).setConnectTimeout(2000).build();
        httpGet.setConfig(requestConfig);


        try {
            HttpContext localContext = new BasicHttpContext();
            response = httpClient.execute(httpGet, localContext);
            RedirectLocations locations = (RedirectLocations) localContext
                    .getAttribute(HttpClientContext.REDIRECT_LOCATIONS);
            if (locations != null) {
                URI downloadUrl = locations.getAll().get(0);
                String filename = downloadUrl.toURL().getFile();
                File downloadFile = new File(fileDir + File.separator
                        + filename);
                FileUtils.writeByteArrayToFile(downloadFile,
                        EntityUtils.toByteArray(response.getEntity()));
                Map<String, Object> resultMap = Maps.newHashMap();
                resultMap.put("downloadFilePath",
                        downloadFile.getAbsolutePath());
                resultMap.put("httpcode", response.getStatusLine()
                        .getStatusCode());
                return resultMap;
            } else {
                if (response.getStatusLine().getStatusCode() != 200) {
                    return null;
                }
                HttpEntity entity = response.getEntity();
                if (entity != null) {
                    String resultStr = EntityUtils.toString(entity, "utf-8");
                    JsonMapper jsonMapper = new JsonMapper();
                    Map<String, Object> result = jsonMapper.fromJson(resultStr,
                            Map.class);
                    if ((Integer) result.get("errcode") == 0) {
                        // 成功
                        return result;
                    } else {
                        throw new Exception((String) result.get("errmsg"));
                    }
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (response != null)
                try {
                    response.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
        }


        return null;
    }

展开
收起
2016-10-21 16:06:11 6625 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
钉钉小程序——为工作方式插上翅膀 立即下载
钉钉客户端自动化的应用 立即下载
使命必达 —— 钉钉企业级 消息服务的机遇与挑战 立即下载