2009-08-12 14 views
8

के लिए वीबीए का उपयोग करके HTTPS पोस्ट अनुरोध मैं Excel में VBA से HTTP POST अनुरोध भेजने के लिए "WinHttp.WinHttpRequest.5.1" का उपयोग करता हूं। लेकिन मैं इसे HTTPS के लिए करने में सक्षम नहीं था, क्योंकि मुझे SSL प्रमाणपत्र त्रुटि मिली है।एक्सेल

एक्सेल में वीबीए से किसी वेबसाइट पर एसएसएल कनेक्शन पर बातचीत करने के लिए आप किस वीबीए कोड का उपयोग करेंगे?

+1

क्या आप कुछ कोड पोस्ट कर सकते हैं? इसके अलावा, एक COM घटक "WinHttp.WinHttpRequest.5.1" है? इसे कहां मिलना है? – shahkalpesh

उत्तर

8

WinHttpRequest ऑब्जेक्ट में SetClientCertificate विधि है। इस कोड को MSDN से लिया उदाहरण प्रयास करें (मैं VBA के लिए अनुकूल करने की कोशिश की):

' Instantiate a WinHttpRequest object. ' 
Dim HttpReq as new ActiveXObject("WinHttp.WinHttpRequest.5.1") 

' Open an HTTP connection. ' 
HttpReq.Open("GET", "https://www.test.com/", false) 

' Select a client certificate. ' 
HttpReq.SetClientCertificate("LOCAL_MACHINE\Personal\My Certificate") 

' Send the HTTP Request. ' 
HttpReq.Send() 
2

जब मैं COM घटक (WinHttpRequest), यह आप से पहले भेज बुला लिए SetClientCertificate के लिए एक कॉल की जरूरत है लगता है इस्तेमाल नहीं किया है, लिंक के अनुसार।

क्या इससे मदद मिलती है?

2

मेरे पास एक ही स्थिति है (एक्सेल में वीबीए से http अनुरोध भेजें); मैं तीन ऑब्जेक्ट का निर्माण: - http अनुरोध वर्ग के लिए, और

Set fsobj = CreateObject("Scripting.FileSystemObject") 
Set txtobj = fso.OpenTextFile("C:\PKCERT.PEM") 

-

Set HttpReq = CreateObject("WinHttp.WinHttpRequest.5.1") 

प्रमाण पत्र सामग्री एक चर में प्राप्त करने के लिए, यह HttpReq.SetClientCertificate को पारित करने के लिए,

certificate_data = txtobj.ReadAll 
HttpReq.SetClientCertificate (certificate_content) 

इसलिए मैं सामान्य रूप से अपने सार्वजनिक कुंजी प्रमाणपत्र सहित अनुरोध भेज सकता हूं,

HttpReq.Send 

पीएस मुझे http://www.808.dk/?code-simplewinhttprequest पर एक स्क्रिप्ट मिली - यह मेरे मामले में ठीक काम करता है, आशा है कि आप भी इसमें हों।