2016-07-14 2 views
0

Onvif GetStreamUrl 메시지를 작성하려면 어떻게해야합니까? 나는 가능성의 수백만을 시도, 여기에 그 중 하나입니다Onvif - GetStreamUri에서 "XML 형식의 위반이 발생했습니다"

<?xml version="1.0" encoding="UTF-8"?> 
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"> 
    <s:Header> 
    <Security s:mustUnderstand="1" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
     <UsernameToken><Username>onvif</Username> 
     <Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">tFvFfoo7ZZhmKv61tTBJ4agS/lM=</Password> 
     <Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">NTcxNjg1NTQwNzg2Mzcx</Nonce> 
     <Created xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2016-07-14T14:02:27Z</Created> 
     </UsernameToken> 
    </Security> 
    </s:Header> 
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <GetStreamUri xmlns="http://www.onvif.org/ver10/media/wsdl"> 
     <StreamSetup> 
    <StreamType>RTP-Unicast</StreamType> 
    <Transport> 
     <TransportProtocol>UDP</TransportProtocol> 
    </Transport> 
     </StreamSetup> 
     <ReferenceToken>profile_1_h264</ReferenceToken> 
    </GetStreamUri> 
    </s:Body> 
</s:Envelope> 

공식 사양은 여기에 있습니다 : http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl#op.GetStreamUri.

나를 도울 수있는 사람이 있습니까?

+0
+0

메시지에 공백을 사용하지 않습니다. – JochoM

+0

문제가 무엇인지 알아 냈습니까? 같은 오류가 발생했습니다 ... –

답변

0

잘 봉투를 만들고 싶다면 다음 테스트 된 템플릿을 사용하고 SOAP 봉투가 들어있는 http 요청을 만들 수 있습니다.

<?xml version="1.0" encoding="UTF-8"?> 
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"> 
    <s:Header> 
     <Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" s:mustUnderstand="1"> 
      <wsse:UsernameToken wsu:Id="SecurityToken-906d1a56-c091-4d33-8afa-04445dd123ff" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
       <wsse:Username>admin</wsse:Username> 
       <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">THHcq7prwwf/42S+A5tuorg/RMY=</wsse:Password> 
       <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">f11vJWByh7IJBvZRi46Qeg==</wsse:Nonce> 
       <wsu:Created>2016-10-19T05:42:47Z</wsu:Created> 
      </wsse:UsernameToken> 
     </Security> 
    </s:Header> 
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
     <GetStreamUri xmlns="http://www.onvif.org/ver10/media/wsdl"> 
      <StreamSetup> 
       <Stream xmlns="http://www.onvif.org/ver10/schema">RTP-Unicast</Stream> 
       <Transport xmlns="http://www.onvif.org/ver10/schema"> 
        <Protocol>UDP</Protocol> 
       </Transport> 
      </StreamSetup> 
      <ProfileToken>2_def_profile1</ProfileToken> 
     </GetStreamUri> 
    </s:Body> 
</s:Envelope> 

하지만, 프로파일을 얻을 중 하나를 선택하고 원하는 StreamSetup 및 선택한 프로파일의 토큰 GetStreamUri 메서드를 호출 할 수 있습니다 ONVIF 미디어 서비스를 사용하여.

관련 문제