2011-11-18 9 views
6

मैंने SOAPServer का उपयोग कर php में एक वेब सेवा बनाई है। यह उपयोगकर्ता नाम और पासवर्ड तत्वों के साथ SoapHeaderUsernameToken देखने की अपेक्षा करता है। अनुरोध में यह हेडर शामिल करते समय सबकुछ वास्तव में ठीक काम करता है। "UsernameToken" नामक साबुन हैंडलर क्लास में एक विधि को परिभाषित करके इस विधि को कॉल किया जाता है और stdClass Obj इसे पास कर दिया जाता है। इसके बाद मैं उपयोगकर्ता को $Obj->username और $Obj->password द्वारा मान्य कर सकता हूं।डब्ल्यूएसडीएल में प्रमाणीकरण साबुन हैडर की आवश्यकता कैसे है?

मुझे नहीं पता कि डब्लूएसडीएल फ़ाइल में क्या जोड़ना है, सबसे पहले यह UsernameToken शीर्षलेख को परिभाषित करने के लिए और दूसरी बार WSDL में इंगित करने के लिए कैसे आवश्यक है?

मैंने कहीं पढ़ा है कि नए एसओएपी मानक ने "आवश्यक" हेडर की धारणा को हटा दिया है।

कम से कम इंगित करने के तरीके पर कोई सलाह है कि मेरे wsdl में अनुरोध है कि इस हेडर को शामिल करना चाहिए?

+1

क्या आप उस लिंक को जोड़ सकते हैं जहां आपने पढ़ा है कि नया एसओएपी मानक "आवश्यक" हेडर की धारणा को हटा देता है? – hakre

+1

क्या आप अपना वर्तमान डब्लूएसडीएल दिखा सकते हैं? – jap1968

उत्तर

3

यहाँ एक डबल्यूएसडीएल लॉगिन निर्दिष्ट करने का एक उदाहरण है: https://ws1.webservices.nl/soap_doclit?wsdl

<binding name="Webservices.nlBinding" type="tns:Webservices.nlPortType"> 
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> 
<operation name="login"> 
<soap:operation soapAction="https://ws1.webservices.nl/soap_doclit.php/login" style="document"/> 
<input> 
<soap:body use="literal"/> 
<soap:header message="tns:Headers" part="HeaderLogin" use="literal"/> 
<soap:header message="tns:Headers" part="HeaderAuthenticate" use="literal"/> 
</input> 
+2

आपके उत्तर ने वास्तव में निम्नलिखित प्रश्न का उत्तर नहीं दिया: "डब्ल्यूएसडीएल में यह कैसे इंगित किया जाए कि यह आवश्यक है?" यहां तक ​​कि यह सब के बाद एक किराया शुरुआती बिंदु है। –

1

लंबा उत्तर। this पोस्ट देखें।

क्लाइंट में आप यह इंगित करने के लिए जरूरी विशेषता का उपयोग कर सकते हैं कि प्राप्तकर्ता प्रक्रिया के लिए हेडर प्रविष्टि अनिवार्य या वैकल्पिक है या नहीं। यदि सर्वर एक अनिवार्य शीर्षलेख संसाधित नहीं कर सकता या नहीं चाहता है तो उसे क्लाइंट को एक एसओएपी दोष फेंकना होगा।

संबंधित मुद्दे