我在Staff项目中使用非官方的Axis2/C来简单地导出一组方法,以使用REST范式返回数据集。
现在我需要对用户进行身份验证,并且我想使用staff的服务中内置的"staff.Login",始终使用REST方法。
我可以调用"login"one_answers"openSession"方法(它们都会给我返回一个有效的sessionID),但我不能在接下来的调用中继续此会话,因为如果我之后调用方法"getUserName",它会说我是访客用户,而不是我之前验证过的用户!
我是否必须像令牌一样在每次调用服务时传递会话ID?有人能给我链接任何关于登录服务的文档或示例吗?(我在网上找不到太多)
谢谢。
PS:Staff有一个用于测试该服务的示例客户端,它运行正常,但我需要使用REST方法从浏览器中使用该服务。
当使用REST+JSON时,您的请求可能是这样的:
{
"@headers": {
"SessionId":"SID"
},
"GetUserName": {}
}
如果您使用REST+SOAP,您的请求可能是这样的:
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Header>
<sid:SessionId xmlns:sid="http://tempui.org/staff/sessionid">SID</sid:SessionId>
</soapenv:Header>
<soapenv:Body>
<ns0:GetUserName xmlns:ns0="http://tempui.org/staff.Login"/>
</soapenv:Body>
</soapenv:Envelope>
其中SID
是由"openSession"或"login"返回的会话ID。