onvif 获取服务端的uri

tiantian123456 2017-09-25 07:45:09
请教:已经获取设备的能力和配置信息,但是获取uri的时候,函数返回 2
用wireshark抓服务端的包,显示 env:faultcode env:Sender env:faultstring the xml format error
抓客户端的包时,没发现格式上有问题呀。摄像头是海康的,onvif版本2.8.17
代码如下:
void UserGetUri(struct soap *soap, char *token_name, _tds__GetCapabilitiesResponse *capa_resp)
{
int result=0 ;
printf("\n\n---------------Getting Uri----------------\n");

_trt__GetStreamUri *trt__GetStreamUri = soap_new__trt__GetStreamUri(soap,-1);
_trt__GetStreamUriResponse *trt__GetStreamUriResponse = soap_new__trt__GetStreamUriResponse(soap,-1);

trt__GetStreamUri->StreamSetup = soap_new_tt__StreamSetup(soap,-1);
trt__GetStreamUri->StreamSetup->Stream = (tt__StreamType)0;//tt__StreamType__RTP_Unicast;

trt__GetStreamUri->StreamSetup->Transport = soap_new_tt__Transport(soap,-1);
trt__GetStreamUri->StreamSetup->Transport->Protocol =tt__TransportProtocol__RTSP;//(tt__TransportProtocol)0;// tt__TransportProtocol__UDP; //RTSP协议
trt__GetStreamUri->StreamSetup->Transport->Tunnel = 0;


trt__GetStreamUri->StreamSetup->__size = 1;
trt__GetStreamUri->StreamSetup->__any = NULL;
trt__GetStreamUri->StreamSetup->__anyAttribute =NULL;

trt__GetStreamUri->ProfileToken = token_name;

printf("channel token:%s\n",trt__GetStreamUri->ProfileToken);

printf("address:%s\n",capa_resp->Capabilities->Media->XAddr);

soap_wsse_add_UsernameTokenDigest(soap,"user", "admin", "qwer1234");

result = soap_call___trt__GetStreamUri(soap,capa_resp->Capabilities->Media->XAddr, NULL, trt__GetStreamUri, trt__GetStreamUriResponse);

if (soap->error)
{
printf("soap error: %d, %s, %s\n", soap->error, *soap_faultcode(soap), *soap_faultstring(soap));
result = soap->error;
return;
}
else
{
printf("!!!!NOTE: RTSP Addr Get Done is :%s \n",trt__GetStreamUriResponse->MediaUri->Uri);
}

}
...全文
1223 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,275

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计/Flash/Silverlight 开发 Flash流媒体开发
社区管理员
  • Flash流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧