2013-03-06 51 views

回答

7

一票,你通常會叫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的份額,看看它是如何使用的細節。

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