如何检索使用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;
}
以下是类似的链接。在那也我已经回答了问题。