2010-10-18 8 views
8

में एचटीपी पोस्ट मैं वीबीए में पोस्ट करने का तरीका जानने का प्रयास कर रहा हूं। आदर्श रूप में मैं एक साधारण कामकाजी उदाहरण की तलाश में हूं जिसके साथ मैं खेल सकता हूं। यह मेरे पास अभी तक है, लेकिन मुझे सच में यकीन नहीं है कि इसके साथ क्या करना है। अधिकतर फॉर्मडाटा कैसा दिखता है।वीबीए

Function WinHTTPPostRequest(URL, formdata, Boundary) 
    Dim http 

    Set http = CreateObject("MSXML2.XMLHTTP") 

    http.Open "POST", URL, False 

    'Set Content-Type header' 
    http.setRequestHeader "Content-Type", "multipart/form-data; boundary=" + Boundary 

    'Send the form data To URL As POST binary request' 
    http.send formdata 

    'Get a result of the script which has received upload' 
    WinHTTPPostRequest = http.responseText 
End Function 

संपादित करें:

तो मैं फ़ायरबग स्थापित इतना है कि मैं "formdata" (देखें कोड) के लिए वस्तु के नाम मिल सकता है। मैंने सोचा होगा कि फॉर्मडाटा इस तरह की कुछ दिखता है "फॉर्म 1 = ए & फॉर्म 2 = बी"। लेकिन यह अभी भी काम नहीं कर रहा है। इस बारे में कोई सुझाव कि मुझे यह बेहतर कैसे करना चाहिए?

संपादित करें: तो ऐसा लगता है कि छिपे हुए फ़ील्ड हो सकते हैं जिन्हें मुझे अपने POST अनुरोध में भेजने की आवश्यकता है।

+0

* फिडलर * डाउनलोड करें ताकि आप HTTP अनुरोधों को डीबग/डीकोड कर सकें। आप बस कुछ आसान याद कर सकते हैं। – AMissico

उत्तर

4

आपके द्वारा सुझाए गए प्रारूप में फॉर्म डेटा भेजने के लिए (यानी जीईटी अनुरोध के समान), मुझे विश्वास है कि आपको सामग्री-प्रकार शीर्षलेख को "एप्लिकेशन/एक्स-www-form-urlencoded" पर सेट करने की आवश्यकता है।

यदि आपको अधिक जटिल डेटा (उदाहरण के लिए, फ़ाइल अपलोड या अन्य बाइनरी डेटा सहित) भेजने की आवश्यकता है, तो आप सामग्री-प्रकार को "मल्टीपार्ट/फॉर्म-डेटा" पर सेट करना बेहतर हो सकते हैं। अनुरोध निकाय को प्रारूपित करने का विवरण RFC 2388 में रखा गया है, लेकिन आप पुस्तकालय ढूंढने से बेहतर हो सकते हैं जो आपके लिए यह करेगा। प्रारूपण को ठीक से प्राप्त करना मुश्किल हो सकता है, और पहिया को फिर से शुरू करने की कोई आवश्यकता नहीं है जब तक कि आप इसे सीखने के अनुभव के रूप में नहीं कर रहे हों।

0

फिडलर डाउनलोड करें ताकि आप HTTP अनुरोधों को डीबग/डीकोड कर सकें। आप बस कुछ आसान याद कर सकते हैं।

इसके अलावा, एमएसडीएन लाइब्रेरी में "HTTP पोस्ट VBA" पर खोज करते समय कई resuls हैं। (http://social.msdn.microsoft.com/Search/en-US?query=%2BHTTP%20%2BPOST%20%2BVBA%20-stackoverflow%20-social&ac=8)। (जब सामग्री को छोड़कर एक "बग" होने के लिए लगता है, इसलिए मैं stackoverflow और क्वेरी में सामाजिक परिणाम बाहर रखा गया।)

कैसे http://support.microsoft.com/kb/290591 जो VBScript का उपयोग करता है, लेकिन आसानी से बदल जाती है पर XMLHTTP या ServerXMLHTTP वस्तु का उपयोग करना द्वारा फ़ॉर्म डेटा सबमिट करने के लिए वीबीए के लिए।