SOAPUI

2012-02-29 18 views
5

में खराब अनुरोध मैं डेल्फी 2010 और इंडी का उपयोग कर वेब सेवा का उपभोग करने का प्रयास कर रहा हूं। मेरे कार्यक्रम द्वारा बनाए गए एक की तुलना करने के लिए एक प्रयोग योग्य एसओएपी स्ट्रीम स्थापित करने के लिए, मैं SOAPUI में परीक्षण कर रहा हूं। मैं वेब सेवा प्रदाता द्वारा प्रदान की गई एक एसओएपी स्ट्रीम का उपयोग कर रहा हूं जो डब्लूएसडीएल फ़ाइल में निर्दिष्ट एसओएपी स्ट्रीम से भी मेल खाता है। मुझे सेवा से HTTP 400 (खराब अनुरोध) त्रुटि मिल रही है।SOAPUI

जो मुझे ऑनलाइन मिल सकता है, ऐसा लगता है कि एक HTTP 400 त्रुटि प्राप्त करने से संकेत मिलता है कि आपका एसओएपी अनुरोध खराब है और वेब सेवा द्वारा नहीं पढ़ा जा सकता है। मैंने XMLPad का उपयोग करके अपने एसओएपी स्ट्रीम का परीक्षण किया है और एक्सएमएल अच्छी तरह से गठित लगता है। मुझे लगता है कि इसका मतलब यह हो सकता है कि कुछ अपनी स्कीमा आवश्यकता से मेल नहीं खाता है। मैं पहले पासवर्ड के लिए स्कीमा विवरण की जांच करूँगा, यदि सादे पाठ के रूप में नहीं भेजा जा सकता है। एक HTTP 400 त्रुटि को खत्म करने के लिए मुझे और क्या जांचना चाहिए?

यहाँ मेरे अनुरोध (कम यूज़रनेम और पासवर्ड) के मामले में यह मदद करता है:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" 
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" 
xmlns:xop="http://www.w3.org/2004/08/xop/include" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://wwww3.org/2001/XMLSchema-instance"> 
    <soap:Header> 
     <wsa:Action>http://edd.ca.gov/SendTransmission</wsa:Action> 
     <wsa:MessageID>urn:uuid:5aa788dc-86e1-448b-b085-2d2743cf9f26</wsa:MessageID> 
     <wsa:ReplyTo> 
     <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address> 
     </wsa:ReplyTo> 
     <wsa:To>http://fsettestversion.edd.ca.gov/fsetproxy/fsetservice.asmx</wsa:To> 
     <wsse:Security soap:mustUnderstand="1"> 
     <wsse:UsernameToken wsu:Id="UsernameToken"> 
      <wsse:Username>#USERNAME#</wsse:Username> 
      <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">#PASSWORD#/wsse:Password> 
      <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">O5QWht1bslLCX6KnlEypAA==</wsse:Nonce> 
      <wsu:Created>2012-02-29T22:32:38.250Z</wsu:Created> 
     </wsse:UsernameToken> 
     <wsu:Timestamp wsu:Id="Timestamp-805a7373-335c-43b6-ba21-6596c4848dbf"> 
      <wsu:Created>2012-02-22T15:41:42Z</wsu:Created> 
      <wsu:Expires>2012-02-22T15:46:42Z</wsu:Expires> 
     </wsu:Timestamp> 
     </wsse:Security> 
    </soap:Header> 
    <soap:Body> 
     <SendTransmission xmlns="http://edd.ca.gov/"> 
     <SendTransmissionRequest xmlns="http://www.irs.gov/a2a/mef/MeFTransmitterServiceWse.xsd"> 
      <TransmissionDataList> 
       <Count>1</Count> 
       <TransmissionData> 
        <TransmissionId>123456789</TransmissionId> 
        <ElectronicPostmark>2012-02-22T07:41:42.2502206-08:00</ElectronicPostmark> 
       </TransmissionData> 
      </TransmissionDataList> 
     </SendTransmissionRequest> 
     <fileBytes> 
      <xop:Include href="cid:[email protected]"/> 
     </fileBytes> 
     </SendTransmission> 
    </soap:Body> 
</soap:Envelope> 

उत्तर

2

वहाँ कुछ और हो सकता है, लेकिन इस समय, मैं wsse पर शक कर रहा हूँ: UsernameToken। मैंने दस्तावेज़ को http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0.pdf पर डाउनलोड किया और कल रात इसे पढ़ा। यह काफी सादा भाषा में लिखा गया है और मुझे लगता है कि मैं समझ रहा हूं कि यह क्या कह रहा है लेकिन यह मुझे मूल रूप से पूछे गए एक छोटे से प्रश्न के साथ छोड़ देता है। यह दस्तावेज़ प्रस्तावित करता है कि आप इस प्रारूप में एक सादे पाठ पासवर्ड का उपयोग कर सकते हैं:

<S11:Envelope xmlns:S11="..." xmlns:wsse="..."> 
    <S11:Header> 
    ... 
    <wsse:Security> 
     <wsse:UsernameToken> 
     <wsse:Username>Zoe</wsse:Username> 
     <wsse:Password>IloveDogs</wsse:Password> 
     </wsse:UsernameToken> 
    </wsse:Security> 
    ... 
    </S11:Header> 
... 
</S11:Envelope> 

या आप पासवर्ड डाइजेस्ट का उपयोग कर सकते हैं। यह इस तरह एक पासवर्ड को पचाने परिभाषित करता है:

Password_Digest = Base64 (SHA-1 (अस्थायी रूप से + बनाई + पासवर्ड))

संदर्भ के अनुसार, एक पासवर्ड डाइजेस्ट इस प्रकार दिखाई देगा के लिए प्रारूप :

<S11:Envelope xmlns:S11="..." xmlns:wsse="..." xmlns:wsu= "..."> 
    <S11:Header> 
    ... 
    <wsse:Security> 
    <wsse:UsernameToken> 
     <wsse:Username>NNK</wsse:Username> 
     <wsse:Password Type="...#PasswordDigest"> 
     weYI3nXd8LjMNVksCKFV8t3rgHh3Rw== 
     </wsse:Password> 
     <wsse:Nonce>WScqanjCEAC4mQoBE07sAQ==</wsse:Nonce> 
     <wsu:Created>2003-07-16T01:24:32Z</wsu:Created> 
    </wsse:UsernameToken> 
    </wsse:Security> 
    ... 
    </S11:Header> 
... 
</S11:Envelope> 

यह वेब सेवा प्रकाशक द्वारा प्रदान किए गए उदाहरण में उपयोग प्रारूप नहीं है। संदर्भ में सादा पाठ संस्करण एक nonce का उपयोग नहीं करता है। उदाहरण संदेश एक nonce का उपयोग करता है लेकिन एक सादा पाठ पासवर्ड के लिए कहते हैं। ऐसा लगता है कि एक पासवर्ड पचाने के बिना एक nonce का उपयोग संदेश में कोई सुरक्षा नहीं जोड़ता है। यदि चरित्र बनाने के लिए कोई समझौता नहीं है तो यह वर्णों की यादृच्छिक स्ट्रिंग हो सकती है। क्या मैं इस बिंदु को याद कर रहा हूं?

मुझे पता है कि यह एक कठिन उपक्रम की तरह प्रतीत होना चाहिए, लेकिन मुझे उम्मीद है कि इसे यहां प्रदान करके, शायद हम अगले व्यक्ति के साथ आने में थोड़ी मदद कर सकते हैं।

0

मैं भी इस मुद्दे पर आया हूं। वेब सेवा प्रकाशक (edd.ca.gov) ने यह कहते हुए जवाब दिया कि "एसओएपी 1.2 मानकों द्वारा मूल्य आवश्यक है" फिर भी मुझे इसके लिए कोई वैध समर्थन नहीं मिला है। ऐसा लगता है कि हम दोनों एक ही पथ (एफएसईटी) का नेतृत्व कर रहे हैं और शायद हमें एक साथ मिलकर काम करना चाहिए, दो सिर एक से बेहतर हैं। मुझे उदाहरण कोड के भीतर कई गलतियां मिली हैं और मुझे अभी भी इसे काम करने के लिए मिला है।

+1

ऐसा लगता है कि जो लोग ईडीडी पर आसानी से उपलब्ध हैं वे बहुत मदद नहीं करेंगे। मैंने इस परियोजना को थोड़ी देर के लिए अलग कर दिया ताकि मैं कुछ अन्य चीजों पर ध्यान केंद्रित कर सकूं। मुझे इसे वापस लेना होगा, लेकिन मैंने अभी तक समय नहीं छोड़ा है। मैं प्रयासों को गठबंधन करने के लिए तैयार होने से अधिक होगा। मुझे नहीं लगता कि एसओ में एक निजी संदेश सुविधा है, लेकिन यदि आप सहयोग करने के बारे में गंभीर हैं, तो फिर से टिप्पणी करें और हम ऑफ़लाइन संवाद करने का एक तरीका जानेंगे। – jrodenhi

+0

मैं अपना ईमेल पोस्ट कर सकता हूं अगर वह "नियमों को तोड़ता नहीं है" –

+0

असल में, मेरा ईमेल पता मेरी प्रोफ़ाइल में है। मुझे लगता है कि आपका ईमेल पता पोस्ट करने में एकमात्र समस्या यह है कि इससे आपको स्पैम का गुच्छा मिल सकता है।मुझे नहीं लगता कि आपका ईमेल पता पोस्ट न करने से स्पैम का गुच्छा नहीं मिल रहा है लेकिन मैं कौन कहूं। – jrodenhi

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