我正在使用Axis2 / C非官方的Staff项目来简单地指出一组方法来返回带有REST范例的数据集。
现在我需要对用户进行身份验证,并且我希望使用Staff中服务的“staff.Login”,始终使用REST方法。
我可以调用“login”和“openSession”方法(它们都返回一个有效的sessionID),但是我不能在接下来的调用中保持这个会话,因为如果我之后调用方法“getUserName”它就说我'是访客用户,而不是我之前验证过的用户!
我是否必须在每次调用服务时都像会话一样传递会话ID? 有人可以链接我有关登录服务的任何文档或示例吗? (我在网上找不到多少)
感谢。
PS:工作人员有一个用于测试此服务的示例客户端,它运行正常,但我需要使用REST方法从浏览器中使用该服务。
答案 0 :(得分:1)
使用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
是&#34; openSession&#34;返回的会话ID。或者&#34;登录&#34;。