2008-09-23 13 views
14

मुझे अपने वीबी 6 कार्यक्रम से बाहरी वेब सेवा का उपभोग करने की आवश्यकता है। यदि संभव हो तो मैं SOAP टूलकिट के बिना अपने प्रोग्राम को तैनात करने में सक्षम होना चाहता हूं, लेकिन यह एक आवश्यकता नहीं है। मेरे पास वेब सेवा स्रोत नहीं है और मैंने इसे नहीं बनाया है। यह एक विक्रेता द्वारा प्रदान की जाने वाली सेवा है।वीबी 6 से वेब सेवा का उपभोग करने का सबसे अच्छा तरीका क्या है?

तो एसओएपी टूलकिट के बाहर, वीबी 6 से वेब सेवा का उपभोग करने का सबसे अच्छा तरीका क्या है?

उत्तर

8

मैं इस कार्य का उपयोग वेब सेवा से डेटा प्राप्त करने के लिए करता हूं।

Private Function HttpGetRequest(url As String) As DOMDocument 
    Dim req As XMLHTTP60 
    Set req = New XMLHTTP60 
    req.Open "GET", url, False 
    req.send "" 

    Dim resp As DOMDocument 
    If req.responseText <> vbNullString Then 
     Set resp = New DOMDocument60 
     resp.loadXML req.responseText 
    Else 
     Set resp = req.responseXML 
    End If 
    Set HttpGetRequest = resp 
End Function 
+0

वेब सेवा HTTP का उपयोग करने तक बहुत उपयोगी नहीं है। –

+2

@ जॉन सैंडर्स निश्चित रूप से, वेब के उन हिस्सों के लिए एक अलग दृष्टिकोण का उपयोग करने के लिए स्वतंत्र महसूस करें जो HTTP का उपयोग नहीं करते हैं। –

+1

यदि आप टीसीपी/आईपी पर द्विआधारी का उपयोग करते हैं, लेकिन HTTP नहीं है तो शायद आप कुछ वेब सेवा नहीं कॉल करते हैं? यदि ऐसा है, तो मैं आपसे सहमत हूं। मुझे नहीं लगता कि परिवहन के रूप में एसएमटीपी या टीसीपी/आईपी का उपयोग एक सेवा को "वेब सेवा" होने से रोकता है, हालांकि मैं सहमत हूं कि यह "इंटरनेट सेवा" नहीं है। –

0

एसओएपी टूलकिट तर्कसंगत रूप से सबसे अच्छा है जो आप प्राप्त कर सकते हैं। इसके बिना एक ही काम करने की कोशिश करने के लिए काफी अतिरिक्त प्रयास की आवश्यकता होगी। ऐसा करने के लिए आपको बहुत गंभीर कारण होने चाहिए।

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

3

मान लें कि आप Windows XP Professional या ऊपर चल रहे हैं, तो एक दिलचस्प तरीका SOAP moniker का उपयोग करना है। यहां कुछ उदाहरण दिए गए हैं, जो कुछ एमएसडीएन पेज से उठाए गए हैं। मुझे नहीं पता कि यह विशेष सेवा काम करती है, लेकिन आपको विचार मिलता है ...

set SoapObj = GetObject 
     ("soap:wsdl=http://www.xmethods.net/sd/TemperatureService.wsdl") 
    WScript.Echo "Fairbanks Temperature = " & SoapObj.getTemp("99707") 

यह तंत्र भी VBScript से काम करता है। जो अच्छा है।

4

.NET के पहले दिन से वेब सेवाओं के लिए अच्छा समर्थन है, इसलिए आप .NET में अपने वेब सेवा क्लाइंट तर्क को .dll लाइब्रेरी/असेंबली के रूप में विकसित कर सकते हैं और COM इंटरऑप के माध्यम से इसे VB6 ऐप में उपयोग कर सकते हैं।

2

Pocketsoap बहुत अच्छी तरह से काम करता है। अपनी वस्तुओं को उत्पन्न करने के लिए WSDL generator का उपयोग करें। इसका उपयोग करने के लिए आपको अपने आप को कुछ भी पार्स करने की ज़रूरत नहीं है, साथ ही सबकुछ अच्छा और दृढ़ता से टाइप किया गया है।

+0

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। – Jimbo

+0

@ जिम्बो, अगर आपको नोट किया गया था कि यह पोस्ट किया गया था (स्टैक ओवरव्लो में शामिल होने से 3 साल पहले) लिंक और पोस्ट के बारे में शिष्टाचार अभी तक औपचारिक नहीं किया गया था। उस ने कहा कि उत्तर का कोई अन्य हिस्सा नहीं है, सुझाव पॉकेटसोप पुस्तकालय का उपयोग करना था। लेकिन, इसे पोस्ट करने के बाद से 6 साल बीत चुके हैं, इसलिए मैं भारी तर्क दूंगा कि पॉकेटसोप अब सबसे अच्छा समाधान नहीं है और उपयोग करने के लिए @ हाइसींट के जवाब का उपयोग करने के लिए है। इंटरप के साथ इंटरपॉप सबसे अच्छा समाधान है जब तक आप इंटरऑप का उपयोग नहीं कर सकते। –

+0

हाय क्रिस, मैंने वास्तव में ऊपर टाइप नहीं किया था। ऊपरी दाएं भाग में 'समीक्षा' पर, यह आया और विकल्पों में से एक 'लिंक-केवल उत्तर' था, जिसे मैं खड़ा करता हूं। उपरोक्त पाठ अन्य पोस्ट की समीक्षा करते समय स्वतः पोस्ट किया गया है, इसे आजमाएं :-) – Jimbo

1

एमएसडीएन वीबी 6.0 संसाधन केंद्र पर स्कॉट स्विगार्ट द्वारा इस आलेख को देखें।

Calling Web Services from Visual Basic 6, the Easy Way

+0

मैं उस लेख को खोजने के लिए रोमांचित था। जब तक मुझे एहसास हुआ कि वह VB6 के साथ VB.net का उपयोग कर रहा है। किंडा इस उद्देश्य को हराता है। (अगर मैं इसके हिस्से के लिए वीबीनेट का उपयोग कर सकता हूं तो मैं इसे सब VB.net में करूँगा)। उनका निष्कर्ष यह कहता है कि यह सब "केवल Visual Basic 6 के साथ इस एप्लिकेशन को बनाना वास्तव में कठिन होगा।" –

1

मैं सफलता अब तक PocketSOAP का उपयोग कर के कुछ उपाय Salesforce एपीआई से कनेक्ट करने के लिया है। मैं डब्लूएसडीएल विज़ार्ड का उपयोग नहीं कर सका क्योंकि यह कॉल नामों के पहले 23 अक्षरों का उपयोग करके रैपर क्लास फ़ाइल नाम उत्पन्न करता है, और इसके परिणामस्वरूप डुप्लीकेट होते हैं। फिर भी, पॉकेटएसओएपी विज़ार्ड के बिना मेरे लिए काफी अच्छा काम कर रहा है, और यह डीएमडी दस्तावेज़ के साथ एक्सएमएलएचटीटीपी का उपयोग करने से कहीं अधिक सरल है।

मैंने .NET में एक रैपर बनाने या "एमएस ऑफिस {एमएसओ संस्करण} वेब सेवा टूलकिट" पुस्तकालयों में से एक का उपयोग करने में भी देखा, लेकिन उन विकल्पों के साथ महत्वपूर्ण तैनाती परेशानी थी। पॉकेटएसओएपी एक साधारण COM DLL है, जो एमएस ऑफिस के कुछ विशेष संस्करण पर निर्भर नहीं है, और एमपीएल के तहत लाइसेंस प्राप्त है।

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