如何使用liferay jsonws或任何其他方式从外部应用程序从Liferay下载文档

时间:2019-01-18 02:59:53

标签: liferay

嗨,我正在使用liferay / api / secure / jsonws服务从外部应用程序上载文档,获取文档,就像我也要下载文档一样,我检查了liferay jsonws,没有方法或我可以用来下载服务,或者我不知道该服务,请建议我一种使用jsonws或其他任何方式从外部应用程序下载文档的方法。

在我知道如何下载文档后进行编辑。

嗨,我尝试使用getURl从外部应用程序下载liferay文档,但是每次获取所有文档时,我都会获得liferay登录页面内容

我已经尝试过get-file-as-stream json-rpc调用,但这也给了我空响应

我使用的代码是:

 final HttpHost targetHost = new HttpHost(hostname.trim());
    System.out.println(targetHost.getHostName());
    UsernamePasswordCredentials creds = new UsernamePasswordCredentials(username, password);
    System.out.println(creds);
    final AuthScope authscope = new AuthScope(targetHost);
    httpclient.getCredentialsProvider().setCredentials(authscope, creds);

    final AuthCache authCache = new BasicAuthCache();
    final BasicScheme basicAuth = new BasicScheme();
    authCache.put(targetHost, basicAuth);

    final BasicHttpContext localContext = new BasicHttpContext();
    localContext.setAttribute(ClientContext.AUTH_CACHE, authCache);

    final HttpGet httpget = new HttpGet(hostname+"/documents/" + groupId + "/" + folderId + "/" + filename);


    final HttpResponse response = httpclient.execute( httpget, localContext);

    if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
        final org.apache.http.HttpEntity entity = response.getEntity();

        if (entity != null) {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();

            entity.writeTo(baos);
            return baos.toByteArray();
        }
    }
    return null;
} finally {
    httpclient.getConnectionManager().shutdown();
}

}

我正在添加基本身份验证标头,将纠正用户名和密码,不知道此登录页面将如何出现,是否需要更改任何许可或任何配置问题,请提供帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用Liferay WebDav服务从您的文档库下载文件。单击文件条目时,可在控制面板内部检查下载路径(WebDAV URL toogle链接)。路径通常如下所示:/ webdav / {站点名称} / document_library / {文件夹名称} / {文件名称} 否则,您可以模仿Liferay在documents-media portlet内部创建的请求URL,以下载文件条目。 但是,当访客看不到您的文件(和文件夹)时,应该注意身份验证。