基于onvif开发中soap_call___tds__GetCapabilities函数调用返回错误值是4


soap_call___tds__GetCapabilities函数调用返回错误值是4,可以看出从网络上接收到的数据和正确解析的数据是一样的,那就可以排除网络问题,但是解析错误,为此看了一下错误的地方,是在tt:Extension中的tt:DHCPv6中,也就是在tt:Extension中,暂时用不到extension中的东西。

在文件soapC.c中:

1、soap_in_tt__NetworkCapabilitiesExtension函数
注释掉这些就可以了:
/*if (soap_flag_Extension && soap->error == SOAP_TAG_MISMATCH)
 if (soap_in_PointerTott__NetworkCapabilitiesExtension2(soap, "tt:Extension", &a->Extension, "tt:NetworkCapabilitiesExtension2"))
 { soap_flag_Extension--;
 continue;
 }

if (soap->error == SOAP_TAG_MISMATCH && !soap_peek_element(soap))
{ if (a->__any == NULL)
{ if (soap_blist___any == NULL)
soap_blist___any = soap_new_block(soap);
a->__any = (char *)soap_push_block(soap, soap_blist___any, sizeof(char));
 if (a->__any == NULL)
 return NULL;
 soap_default_byte(soap, a->__any);
 }
 if (soap_in_byte(soap, "-any", a->__any, "xsd:byte"))
 { a->__size++;
 a->__any = NULL;
 continue;
}
}*/

2、soap_in_tt__Capabilities函数
 /*if (soap_flag_Extension && soap->error == SOAP_TAG_MISMATCH)
if (soap_in_PointerTott__CapabilitiesExtension(soap, "tt:Extension", &a->Extension, "tt:CapabilitiesExtension"))
 { soap_flag_Extension--;
 continue;
 }*/

你可能感兴趣的:(基于onvif开发中soap_call___tds__GetCapabilities函数调用返回错误值是4)