EasyDarwin 增加restful接口返回值

来源:互联网 发布:淘宝有虚拟试衣功能吗 编辑:程序博客网 时间:2024/06/11 12:16

   因为在工作需要的时候发现EasyDarwin ,现有resful接口上缺少回复信息,因此需要自己加上创建源的状态回复。于是准备加上该功能,方便业务服务器进行管理和异常处理。

    http 请求在 HTTPSession::ExecNetMsgEasyUDPModuleReq 中处理http的请求

 1、在自定义模块上添加如下代码

 if(clientSesRef != NULL)// 不允许相同
{
//session = (EasyUDPSession*)clientSesRef->GetObject();
nEasyErrCode = -1;
}
else
{
              session = NEW EasyUDPSession(inParams->inListenAddr, inParams->inCastAddr,inParams->inPort, inParams->inIsSSM, inParams->inStreamName);
      OS_Error theErr = sUDPSessionMap->Register(session->GetRef());
      Assert(theErr == QTSS_NoErr);
      OSRef* debug = sUDPSessionMap->Resolve(&streamName);
      Assert(debug == session->GetRef());
      nEasyErrCode = session->UDPSessionStart();
      sUDPSessionMap->Release(session->GetRef());
}

    return nEasyErrCode';


 2、nEasyErrCode的值返回给  CallDispatch函数

如下代码片段:

QTSSModule* theModule = QTSServerInterface::GetModule(QTSSModule::kEasyUDPOpenRole, fCurrentModule);
  //获取调用返回的错误码,可以定义0表示成功,<0表示失败,具体错误码可以自己定义

 theErr = theModule->CallDispatch(Easy_UDPOpen_Role, &params);

theErr 就是错误码

3、构造回应的报文:

EasyMsgSCStartHLSACK  对jsoncpp 进行了封装,使用很方便

如下代码生成了返回的json 报文

 EasyMsgSCStartHLSACK ack; 

ack.SetHeaderValue(EASY_TAG_VERSION, "1.0");
if (theErr <0)
{
ack.SetBodyValue<char>("errorcode",'0');
}
else
{
 ack.SetBodyValue<char>("errorcode",'1');
}

最后和原来的代码一致不需要修改代码

(本人使用的版本为找官方的定制版本,打开的模块是在开源版本没有的,但是处理请求是一致的)

0 0
原创粉丝点击