如何检索从Java使用Rest API登录后生成的露天票据?

时间:2013-03-06 03:43:57

标签: alfresco

我可以使用ALfresco REST API登录alfresco。我是通过java类做的。 我也能够收到回复消息,确认'。但是,任何人都可以告诉我如何检索登录时生成的票证。

3 个答案:

答案 0 :(得分:7)

要获得票证,您通常会拨打http://localhost:8080/alfresco/s/api/login - (或类似) - GET或POST:

试试这个:

curl -XPOST  -H "Content-Type: application/json" -d '{"username":"admin","password":"admin"}' http://localhost:8080/alfresco/s/api/login

它返回一个JSON数据结构:

{
        "data":
        {
                "ticket":"TICKET_3c255a809fadbf8abddd0546cbe354c2ab6d3995"
        }
}

或基本的GET:

curl 'http://localhost:8080/alfresco/s/api/login?u=admin&pw=admin'

返回持有票证的XML文档:

<?xml version="1.0" encoding="UTF-8"?>
<ticket>TICKET_6f997d0e561b07430c19043d7c42783d08b02489</ticket>

也就是说,如果您想要更高级别的抽象处理低级别的通信问题,如身份验证,会话,超时等,您可能需要查看spring webscripts连接器框架。 https://artifacts.alfresco.com/nexus/content/repositories/public/spring-surf-parent/spring-webscripts/spring-webscripts/apidocs/org/springframework/extensions/webscripts/connector/AlfrescoConnector.html可能是一个很好的切入点。看一下Alfresco的分享,看看它是如何被详细使用的。

答案 1 :(得分:2)

如果您正在执行此操作,例如此处使用java示例中描述的公共HttpClient:http://wiki.alfresco.com/wiki/Repository_RESTful_API_Reference#Login

然后可以在响应的主体中找到票证(method.getResponseBodyAsString();),它看起来与@andreas-steffan在他的答案中显示的完全相同。你只需解析json响应。

答案 2 :(得分:2)

以下是java函数。

private static String getAlfticket() throws IOException, JSONException { 
        String ticket = ""; 
        URL url = new URL("http://hostname/alfresco/service/api/login u="+USERNAME+"&pw="+PASSWORD+"&format=json"); 
        URLConnection con = url.openConnection(); 
        InputStream in = con.getInputStream(); 
        String encoding = con.getContentEncoding(); 
        encoding = encoding == null ? "UTF-8" : encoding; 
        String json = IOUtils.toString(in, encoding); 
        JSONObject getData = new JSONObject(json); 
        System.out.println(getData.getJSONObject("data").get("ticket") 
                .toString()); 
        ticket =getData.getJSONObject("data").get("ticket").toString(); 
        return ticket; 
    }

下面是类似的链接。我也回答了问题。

Alfresco login api giving Bad Request 400