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

问题描述:

我可以使用ALfresco REST API登录到户外。我通过java类来完成它。 也能够得到响应消息为'好'。但是,任何一个可以请告诉我如何检索在登录时产生的票如何检索使用Rest API从Java登录后生成的露天门票?

一票,你通常会叫http://localhost:8080/alfresco/s/api/login - (或similiar) - 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的份额,看看它是如何使用的细节。

如果你正在做它像在这里Java示例说明的Commons的HttpClient的例子:http://wiki.alfresco.com/wiki/Repository_RESTful_API_Reference#Login

那么票可以在响应的正文中找到(method.getResponseBodyAsString()),其看起来完全像@ andreas-steffan在他的回答中所展示的。你只需要解析json响应。

下面是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