c#
  • .net
  • soap
  • 2012-05-09 15 views 9 likes 
    9

    मुझे एक यूआरएल को एक एसओएपी अनुरोध भेजने की जरूरत है। लेकिन मुझे यह कठिन लगता है तो मैंने सोचा कि यह होगा।एक एसओएपी अनुरोध भेजें, कहां से शुरू करें?

    अनुरोध भेजने के लिए है कि मैं है:

    string bla = "" + 
    "<?xml version='\"1.0\" encoding=\"UTF-8\"?>" + 
        "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" + 
         "<soap:Body>" + 
          "<ns1:sendNotificationResponse" + 
           "xmlns=\"http://notification.services.adyen.com\"" + 
           "xmlns:ns2=\"http://common.services.adyen.com\">" + 
          "<notificationResponse>[accepted]</notificationResponse>" + 
          "</sendNotificationResponse>" + 
         "</soap:Body>" + 
        "</soap:Envelope>"; 
    

    मैं एक यूआरएल को देखते हुए किया गया है: https://ca-test.adyen.com/ca/services/Notification?wsdl

    समस्या है, यह है कि मुझे यकीन है कि कैसे यहां से जाने के लिए नहीं कर रहा हूँ । क्या मैं बस उस यूआरएल को सिर्फ एक अनुरोध भेज सकता हूं? या मुझे पहले किसी भी तरह डब्लूएसडीएल आयात करना है?

    मुझे नेट पर बहुत सारे उदाहरण मिल गए हैं, लेकिन मैं वास्तव में उनमें से अधिकांश को समझ नहीं पाया। कुछ क्योंकि वे अभी भी उपयोग कर रहे थे, बाहर दिनांकित भी थे: Microsoft.Web.Services3

    तो संक्षेप में, मुझे लगता है मैं वास्तव में यहाँ और कैसे क्या करना है पर थोड़े पता कर रहा हूँ। मैं बस उस 'एसओएपी' संदेश भेजना चाहता हूं ...

    +3

    क्या आपने अपने वीएस में 'सेवा संदर्भ' या 'वेब संदर्भ' जोड़ने का प्रयास किया है? –

    +0

    इस लिंक को वेब सेवा बनाने या उपभोग करने के तरीके पर आज़माएं: http://www.kevingao.net/wcf-java-interop/wcf-client-and-wcf-service.html –

    +0

    @LB नहीं, यह सब वास्तव में है मेरे लिए नया मुझे "सेवा संदर्भ जोड़ें" दिखाई देता है लेकिन "वेब संदर्भ जोड़ें" नहीं। मैं पहले "सेवा संदर्भ" जोड़ने की कोशिश करूंगा। – Vivendi

    उत्तर

    4

    आप इस प्रश्न में दिए गए एंडपॉइंट यूआरएल के लिए सेवा संदर्भ जोड़कर ऐसा कर सकते हैं। फिर आप वेब विधि को कॉल कर सकते हैं क्योंकि आप सामान्य ऑब्जेक्ट को कॉल करेंगे, क्लाइंट ऑब्जेक्ट से बाहर। चरण-दर-कदम से नीचे:

    1. राइट-क्लिक करें संदर्भ, चयन सेवा संदर्भ जोड़ने
    2. सेवा संदर्भ
    3. जोड़ने के लिए कोड में URL दर्ज करें नए ग्राहक का दृष्टांत और नीचे के रूप में उपयोग करें:
    ServiceReference1.NotificationPortTypeClient client = new ServiceReference1.NotificationPortTypeClient(); 
    client.sendNotification(...); 
    

    संपादित

    +०१२३५१६४१०

    वेब सेवा को अधिक विस्तार से देखते हुए, ऐसा लगता है कि आपके द्वारा प्रश्न में शामिल एसओएपी अनुरोध वह प्रतिक्रिया है जो यूआरएल द्वारा वापस भेजा जाएगा जब आपने विधि को बुलाया था - अनुरोध नहीं जिसे आप भेज देंगे विधि का आह्वान करने के लिए वेब सेवा।

    3

    विजुअल स्टूडियो में वेब सेवा संदर्भ जोड़ने में आसान नहीं होगा? आपको जो मिलता है वह "स्टब" कक्षाएं होती है जो आपको सामान्य कक्षाओं और विधियों का उपयोग करके वेब सेवा के साथ संवाद करने की अनुमति देती हैं - आपको भेजे गए एसओएपी संदेशों या क्या नहीं होने की परवाह करने की आवश्यकता नहीं है।

    इस तरह के एक संदर्भ को जोड़ने के लिए, आप "सेवा संदर्भ जोड़ें" संदर्भ मेनू आइटम का चयन कर सकते हैं। सेवा के प्रकार के आधार पर, आपको सेवा संदर्भ संवाद के निचले बाएं हिस्से में बटन दबाए जाने की आवश्यकता होगी (जर्मन में इसे "Erweitert" कहा जाता है, जो "उन्नत" या "विस्तारित" में अनुवाद करेगा)। अगले संवाद में ".NET 2.0 शैली वेब सेवा संदर्भ" जोड़ने के लिए "संगतता" खंड में निचले बाएं बटन पर एक बटन भी है।

    दोनों में से एक आपकी मदद करनी चाहिए।

    यदि आपको मैन्युअल रूप से अनुरोध भेजने की आवश्यकता है, तो आप वेब सेवा के यूआरएल को एक अनुरोध अनुरोध भेज देंगे जो एक्सएमएल कोड को अनुरोध निकाय के रूप में जोड़ता है।

    +0

    मैंने डब्ल्यूएसडीएल को संदर्भ के रूप में जोड़ा है। यह मुझे संवाद में दिखाता है कि मेरे पास एक समारोह 'sendNotification' है। मुझे लगता है कि मुझे यही चाहिए। अब मेरे पास "सेवा संदर्भ" के अंतर्गत "ServiceReference1" है। मुझे लगता है कि यह सही है? --- मुझे जो करना है वह वास्तव में इसका उपयोग करना है। कोई विचार है कि मैं यह कैसे कर सकता हूं? --- ServiceReference1 सेवा = नई सेवा संदर्भ 1(); --- चाल नहीं करता है। – Vivendi

    +0

    अब 'ServiceReference1' नामस्थान होना चाहिए। इसलिए यदि आप 'ServiceReference1' दर्ज करते हैं और कोड पूर्ण होने के पॉपअप को देखने के लिए प्रतीक्षा करें, तो आप कुछ कक्षाएं देखेंगे। जिसकी आपको आवश्यकता है उसे "ग्राहक" के साथ समाप्त होना चाहिए। उदाहरण के लिए "सेवा 1 क्लाइंट"। –

    +0

    जैसा कि रिचर्ड ने पाया, लाइन 'सेवा रिफरेंस 1 होना चाहिए। नोटिफिकेशनपोर्ट टाइप क्लाइंट क्लाइंट = नई सेवा रिफरेंस 1। नोटिफिकेशनपोर्ट टाइप क्लाइंट() ' –

    0

    "साबुन संदेशों को कैसे भेजना है" के संबंध में: प्रयुक्त प्रोकोटोल (http, jms, यहां तक ​​कि smtp) के आश्रित, SOAP संदेश टेलनेट, कर्ल इत्यादि के माध्यम से कमांड लाइन से भी भेजे गए इंस्टेन के लिए हो सकते हैं ..

    तो आपके प्रश्न के बारे में: सामान्य उत्तर के लिए खेद है, लेकिन यह उपयोग किए गए ws-framework पर निर्भर करता है।

    डब्लूएसडीएल के संबंध में: डब्लूएसडीएल कार्यान्वयन के लिए अनुबंध/आधार के रूप में कार्य करता है, इसलिए आपके मामले में (मान लीजिए कि आपका एसओएपी-संदेश डब्लूएसडीएल में स्कीमा के अनुसार पहले ही मान्य है) डब्लूएसडीएल का स्पष्ट उपयोग नहीं कर रहा है वास्तव में आवश्यक है।

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