Axis2C员工REST登录服务

时间:2015-10-29 12:23:57

标签: web-services axis2c staff-wsf

我正在使用Axis2 / C非官方的Staff项目来简单地指出一组方法来返回带有REST范例的数据集。

现在我需要对用户进行身份验证,并且我希望使用Staff中服务的“staff.Login”,始终使用REST方法。

我可以调用“login”和“openSession”方法(它们都返回一个有效的sessionID),但是我不能在接下来的调用中保持这个会话,因为如果我之后调用方法“getUserName”它就说我'是访客用户,而不是我之前验证过的用户!

我是否必须在每次调用服务时都像会话一样传递会话ID? 有人可以链接我有关登录服务的任何文档或示例吗? (我在网上找不到多少)

感谢。

PS:工作人员有一个用于测试此服务的示例客户端,它运行正常,但我需要使用REST方法从浏览器中使用该服务。

1 个答案:

答案 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;。