Excel स्प्रेडशीट से HTTP POST करने के लिए VBA कोड की क्या आवश्यकता है?
Excel स्प्रेडशीट से HTTP POST करने के लिए VBA कोड की क्या आवश्यकता है?
जवाबों:
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 अनुरोध पर अधिक नियंत्रण के लिए आप इसके WinHttp.WinHttpRequest.5.1स्थान पर उपयोग कर सकते हैं MSXML2.ServerXMLHTTP।
objHTTP.responseText।
ByRef
यदि आपको मैक और विंडोज दोनों पर काम करने की आवश्यकता है, तो आप QueryTables का उपयोग कर सकते हैं:
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
टिप्पणियाँ:
अधिक विवरण के लिए, आप " एक्सेल से वेब सेवाओं का उपयोग करने के बारे में मेरा पूरा सारांश देख सकते हैं ।"
का anwser के अलावा विधेयक छिपकली :
अधिकांश बैकेंड कच्चे पोस्ट डेटा को पार्स करते हैं। उदाहरण के लिए PHP में, आपके पास एक सरणी होगी $_POSTजिसमें पोस्ट डेटा के भीतर अलग-अलग चर संग्रहीत किए जाएंगे। इस स्थिति में आपको एक अतिरिक्त हेडर का उपयोग करना होगा "Content-type: application/x-www-form-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"।
आप ServerXMLHTTPVBA प्रोजेक्ट में संदर्भ जोड़कर उपयोग कर सकते हैं MSXML।
- VBA संपादक खोलें (आमतौर पर मैक्रो संपादित करके)
- उपलब्ध सन्दर्भों की सूची पर जाएँ
- Microsoft XML की जाँच करें
- ओके पर क्लिक करें।
( VBA प्रोजेक्ट्स के भीतर MSXML को संदर्भित करने से )
ServerXMLHTTP MSDN प्रलेखीकरण सभी गुण और ServerXMLHTTP के तरीकों के बारे में पूरी जानकारी नहीं है।
संक्षेप में, यह मूल रूप से इस तरह काम करता है:
- दूरस्थ सर्वर से कनेक्ट करने के लिए खुली विधि को कॉल करें
- अनुरोध भेजने के लिए कॉल भेजें ।
- ResponseXML , responseText , responseStream या responseBody के माध्यम से प्रतिक्रिया पढ़ें
अन्य उपयोगकर्ताओं की प्रतिक्रिया को पूरा करने के लिए:
इसके लिए मैंने एक "WinHttp.WinHttpRequest.5.1" ऑब्जेक्ट बनाया है।
VBA का उपयोग करके Excel के कुछ डेटा के साथ पोस्ट अनुरोध भेजें:
Dim LoginRequest As Object
Set LoginRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
LoginRequest.Open "POST", "http://...", False
LoginRequest.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
LoginRequest.send ("key1=value1&key2=value2")
VBA का उपयोग करके एक्सेल से टोकन प्रमाणीकरण के साथ एक अनुरोध प्राप्त करें:
Dim TCRequestItem As Object
Set TCRequestItem = CreateObject("WinHttp.WinHttpRequest.5.1")
TCRequestItem.Open "GET", "http://...", False
TCRequestItem.setRequestHeader "Content-Type", "application/xml"
TCRequestItem.setRequestHeader "Accept", "application/xml"
TCRequestItem.setRequestHeader "Authorization", "Bearer " & token
TCRequestItem.send
TCRequestItem Object, आप इसे पढ़ सकते हैं जैसे: करने के TCRequestItem.ResponseTextबादTCRequestItem.send