एक्सेल स्प्रेडशीट से HTTP पोस्ट करने के लिए क्या VBA कोड आवश्यक है?मैं वीबीए का उपयोग कर Excel से सर्वर पर एक HTTP POST अनुरोध कैसे भेज सकता हूं?
उत्तर
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = "http://www.somedomain.com"
objHTTP.Open "POST", URL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.send("")
वैकल्पिक रूप से देखें, HTTP अनुरोध आप MSXML2.ServerXMLHTTP
के स्थान पर WinHttp.WinHttpRequest.5.1
उपयोग कर सकते हैं पर अधिक नियंत्रण के लिए।
आप एमएसएक्सएमएल के संदर्भ को जोड़कर एक वीबीए परियोजना में ServerXMLHTTP का उपयोग कर सकते हैं।
- ओपन VBA संपादक
- जाओ उपलब्ध संदर्भ की सूची में
- Microsoft XML
- ठीक क्लिक करें चेक (आमतौर पर एक मैक्रो का संपादन करके)।
(Referencing MSXML within VBA Projects से)
ServerXMLHTTP MSDN documentation सभी गुण और ServerXMLHTTP के तरीकों के बारे में पूरी जानकारी नहीं है।
संक्षेप में, हालांकि, यह इस तरह से मूल रूप से काम करता है:
- कॉल open विधि कॉल send दूरस्थ सर्वर से
- कनेक्ट करने के लिए अनुरोध भेजने के लिए।
- MSXML लाइब्रेरी का उपयोग कर और फिर XMLHttpRequest ऑब्जेक्ट उपयोग करने से पहले responseXML, responseText, responseStream या responseBody
वह लिंक जेएसक्रिप्ट का उपयोग करता है, वीबीए –
धन्यवाद @ जॉन हेनकेल। मैंने उस उत्तर को अद्यतित करने के लिए कुछ बदलाव किए हैं। –
मैं इस किया था के माध्यम से प्रतिक्रिया पढ़ें। http://scriptorium.serve-it.nl/view.php?sid=40
QueryTables आप पर दोनों मैक और Windows काम करने के लिए इसकी आवश्यकता है, तो आप उपयोग कर सकते हैं:
With ActiveSheet.QueryTables.Add(Connection:="URL;http://carbon.brighterplanet.com/flights.txt", Destination:=Range("A2"))
.PostText = "origin_airport=MSN&destination_airport=ORD"
.RefreshStyle = xlOverwriteCells
.SaveData = True
.Refresh
End With
नोट्स:
-
उत्पादन के बारे में
- ... मैं अगर यह संभव है पता नहीं है परिणामों को उसी सेल पर वापस करें जिसे वीबीए फ़ंक्शन कहा जाता है। उपर्युक्त उदाहरण में, परिणाम ए 2 में लिखा गया है।
- इनपुट के संबंध में ... यदि आप कुछ सेल बदलते समय परिणाम ताज़ा करना चाहते हैं, तो सुनिश्चित करें कि वे कक्ष आपके वीबीए फ़ंक्शन के लिए तर्क हैं।
- यह मैक 2008 के लिए एक्सेल पर काम नहीं करेगा, जिसमें वीबीए नहीं है। मैक 2011 के लिए एक्सेल वीबीए वापस मिला।
अधिक जानकारी के लिए, आप "using web services from Excel" के बारे में मेरा पूरा सारांश देख सकते हैं।
+1: मुझे केवल विंडोज़ पर इसकी आवश्यकता है लेकिन एक क्रॉस-प्लेटफ़ॉर्म समाधान किसी और को लाभ पहुंचा सकता है। –
मुझे नहीं लगता कि आप वास्तव में एचटीएमएल कोड तक पहुंच सकते हैं, आप केवल क्रॉस-प्लेटफ़ॉर्म समाधान और +1 (यदि मैं कर सकता था) के लिए प्रदान किए गए वेब पेज (वास्तविक HTML कोड नहीं) – user1493046
+1 पर जानकारी प्राप्त कर सकता हूं जिस्ट लिंक और सब के साथ पूरा सारांश। धन्यवाद!! –
Bill the Lizard का anwser के अलावा:
बैकेंड के अधिकांश कच्चे पद डेटा पार्स। उदाहरण के लिए PHP में, आपके पास एक सरणी $ _POST होगी जिसमें पोस्ट डेटा के भीतर अलग-अलग चर संग्रहित किए जाएंगे।इस मामले में आप एक अतिरिक्त हैडर ": आवेदन/x-www फार्म-urlencoded सामग्री-प्रकार": उपयोग करने के लिए
Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
URL = "http://www.somedomain.com"
objHTTP.Open "POST", URL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
objHTTP.send ("var1=value1&var2=value2&var3=value3")
नहीं तो आप चर "$ HTTP_RAW_POST_DATA" पर कच्चे पद डेटा को पढ़ने के लिए।
मैं इस अनुरोध को पोस्ट करने की कोशिश कर रहा हूं (घुंघराले ब्रेसिज़ के साथ) और संकलन त्रुटियां प्राप्त करें ... क्या आप मदद कर सकते हैं: "{" अनुरोध ": {" कारनाम ":" होंडा "," मॉडल ":" 1 ए 5 "}}" – fiddle
- 1. मैं ब्राउज़र से http हटाना अनुरोध कैसे भेज सकता हूं?
- 2. मैं एक POST अनुरोध में एक फ़ाइल कैसे भेज सकता हूं?
- 3. सर्वर पर HTTP POST अनुरोध को अनुरोध कैसे भेजें
- 4. एक idempotent HTTP POST अनुरोध
- 5. मैं postgresql फ़ंक्शन से कुछ http अनुरोध कैसे भेज सकता हूं या
- 6. HTTP POST अनुरोध
- 7. मैं क्यूटी 4.6.1 के साथ एक HTTP POST अनुरोध कैसे बना सकता हूं?
- 8. HTTP POST अनुरोध
- 9. मैं प्रतिक्रिया कैसे समाप्त कर सकता हूं और HTTP कोड 404 वापस भेज सकता हूं?
- 10. HTTP POST अनुरोध बनाना
- 11. मैं POST डेटा कैसे भेज सकता हूं और JQuery के साथ नेविगेट कर सकता हूं?
- 12. वीबीए का उपयोग कर Excel के साथ HTTP_POST के माध्यम से फ़ाइलों को कैसे भेजें?
- 13. क्या मैं सी # से आईआईएस तक एक खाली HTTP पोस्ट वेबआरक्वेट ऑब्जेक्ट भेज सकता हूं?
- 14. अनुरोध मॉड्यूल का उपयोग करके मैं एक HTTP प्रतिक्रिया कैसे बफर कर सकता हूं?
- 15. मैं एक्सेल वीबीए का उपयोग कर कुशलता से एक स्ट्रिंग को एन्कोड कैसे कर सकता हूं?
- 16. मैं एक PHP कर्ल अनुरोध के साथ एक्स-HTTP-विधि-ओवरराइड का उपयोग कर एक पोस्ट कैसे बना सकता हूं?
- 17. मैं सॉकेट का उपयोग कर इंटरनेट पर डेटा कैसे भेज सकता हूं?
- 18. क्या SQL सर्वर एक वेब अनुरोध भेज सकता है?
- 19. django का उपयोग कर एक POST अनुरोध कैसे भेजें?
- 20. क्या मैं एक ही सर्वर पर एक कर्ल अनुरोध कर सकता हूं?
- 21. मैं ASIHTTPRequests का उपयोग कर किसी एप्लिकेशन को HTTP अनुरोध कैशिंग कैसे जोड़ सकता हूं?
- 22. मैं HTTP POST
- 23. मैं जावा से एक एसएमएस कैसे भेज सकता हूं?
- 24. मैं वीबीए का उपयोग करके भेजे गए ईमेल पर "उच्च महत्व" कैसे सेट कर सकता हूं?
- 25. मैं वीबीए से पायथन प्रोग्राम कैसे कॉल कर सकता हूं?
- 26. मैं OAuth2 के साथ प्रमाणीकृत सर्वर से C2DM का उपयोग कर किसी डिवाइस को संदेश कैसे भेज सकता हूं?
- 27. मैं फेसबुक एपीआई का उपयोग करके निमंत्रण अनुरोध कैसे भेज सकता हूं?
- 28. मैं कोको से एक HTML ईमेल कैसे भेज सकता हूं?
- 29. सर्वर पर अनुरोध भेजते समय मैं कर्ल द्वारा किए गए अनुरोध शीर्षलेख कैसे देख सकता हूं?
- 30. मैं हास्केल में एक HTTPS अनुरोध कैसे कर सकता हूं?
HTTP अनुरोध पर अधिक नियंत्रण के लिए आप "MSXML2.ServerXMLHTTP" के बजाय "WinHttp.WinHttpRequest.5.1" का उपयोग कर सकते हैं –
ध्यान देने योग्य यह है कि आप "POST" को "PUT" में बदलकर HTTP PUT जारी करने के लिए इसका उपयोग भी कर सकते हैं। PUT की सामग्री .send() विधि में जाती है। सेट करने के लिए आपको आवश्यक अतिरिक्त हेडर भी उपयोगकर्ता-एजेंट उदाहरण में उपयोग किए गए वाक्यविन्यास के बाद किया जा सकता है। – radicand
यदि आप सब के रिटर्न वैल्यू का उपयोग नहीं करते हैं तो पैरामीटर के चारों ओर कोष्ठक का उपयोग न करें: वीबीए सिंटैक्स सब के पैरामीटर के आसपास कोष्ठक की अनुमति नहीं देता है (हालांकि उन्हें फ़ंक्शंस के लिए जरूरी है), इसलिए ये कोष्ठक वास्तव में अंकगणित कोष्ठक हैं जो ऑपरेटर प्राथमिकता को स्पष्ट करने के लिए उपयोग किए जाते हैं । भ्रामक और अस्पष्ट होने के अलावा, अगर अंततः तर्क एक वस्तु है तो अंततः एक रनटाइम त्रुटि हो सकती है। और हालांकि स्पष्ट रूप से नहीं पूछा गया है, आमतौर पर आप HTTP प्रतिक्रिया का उपयोग करना चाहते हैं, जिसका आप उल्लेख कर सकते हैं 'objHTTP.responseText' द्वारा पुनर्प्राप्त किया जा सकता है। – Leviathan