किसी कारण से तार कभी ठीक से पार नहीं हुए; क्योंकि आप एक यूआरएल से सीधे एक्सेल में एक्सएमएल आयात कर सकते हैं, सरल आरईएसटी वेब सेवा प्रश्नों को करने के लिए WINHTTP का उपयोग करने की कोई आवश्यकता नहीं है।
मैंने मूल रूप से अमेज़ॅन वेब सेवा कोड को देखने के बाद तकनीक का उपयोग करना शुरू किया जो WinHTTP का उपयोग करता है, हालांकि यह केवल वेब सेवा से एक्सएमएल का अनुरोध करने के लिए जरूरी नहीं है।
अवधारणा का प्रमाण: एक्सेल में "डैन राथर" पर नवीनतम याहू समाचार प्राप्त करने के लिए याहू न्यूज सर्च एपीआई का उपयोग करने का एक बेयरबोन उदाहरण यहां दिया गया है। इसके लिए एक्सेल के एक संस्करण की आवश्यकता है जो एक्सएमएल का समर्थन करता है:
1. हाइलाइट करें और फिर इस यूआरएल को कॉपी करें:
http://api.search.yahoo.com/WebSearchService/V1/webSearch?appid=YahooDemo&query=Dan+Rother&results=10
2. एक्सेल में Data->XML->Import . पर जाएं
3. फ़ाइल नाम बॉक्स में पेस्ट शॉर्टकट (CTRL-V) का उपयोग करके उस यूआरएल को दर्ज करें जिसे आपने अभी कॉपी किया है और एंटर दबाएं।
4. एक्सेल आपको याहू समाचार परिणामों की सूची के लिए सेल के लिए संकेत देगा
तो हम सिर्फ WINHTTP के बिना एक्सेल में डेटा प्राप्त करने के लिए Yahoo रेस्ट वेबसाइट सेवा का उपयोग करने में कामयाब रहे। ध्यान रखें कि एक नंगे हड्डियों का उदाहरण है। इस पर व्याख्या करने के लिए, कार्यपुस्तिका में एक नक्शा जोड़ें और XMLMaps.import का उपयोग करें बजाय WINHTTP उदाहरणों का मैं उपयोग कर रहा हूं।
मैं वर्तमान में REST webservices के साथ WINHTTP का उपयोग कब करूंगा? मेरा अब तक का सबसे अच्छा अनुमान:
1. जब सेवा के लिए लॉगिन आवश्यक हो। किस मामले में मुझे SetCredentials का उपयोग करने की आवश्यकता है
2. जब मैं एक्सएमएल डेटा को एक्सएमएल मैप में आयात नहीं करना चाहता, बल्कि मुझे सिर्फ कच्चा डेटा चाहिए। उदाहरण के लिए, मैं स्प्रेडशीट पर लिखने से पहले डेटा में हेरफेर करना चाहता हूं या संभवतः एक्सएमएल को नेविगेट करना चाहता हूं और कस्टम मानदंडों के आधार पर कौन सा डेटा प्रदर्शित करना चाहता हूं।
अंत में, XMLMAPS.Import और WINHTTP दोनों REST वेब सेवाओं का उपभोग करने के लिए काम करते हैं, हालांकि बाद वाले को कोड की कुछ और पंक्तियों की आवश्यकता होती है। जब तक मैं इसे सीख नहीं लेता, तब तक मैं वेब सेवाओं के साथ ठोकर खाता रहूंगा (और निश्चित रूप से: इसे सही करें)। मुझे आश्चर्य है कि एक्सेल का उपयोग करके किसी और के पास कोई आरईएसटी उदाहरण है या नहीं?