এক্সেল স্প্রেডশিট থেকে HTTP পোষ্ট সম্পাদনের জন্য কোন ভিবিএ কোডের প্রয়োজন?
এক্সেল স্প্রেডশিট থেকে HTTP পোষ্ট সম্পাদনের জন্য কোন ভিবিএ কোডের প্রয়োজন?
উত্তর:
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
আপনার যদি ম্যাক এবং উইন্ডোজ উভয় ক্ষেত্রেই কাজ করার প্রয়োজন হয় তবে আপনি কোয়েরি টেবিলগুলি ব্যবহার করতে পারেন:
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
মন্তব্য:
আরও বিশদের জন্য, আপনি " এক্সেল থেকে ওয়েব পরিষেবা ব্যবহার " সম্পর্কে আমার সম্পূর্ণ সারাংশ দেখতে পারেন ।
বিল দ্য টিকটিকির অ্যাঞ্জার ছাড়াও :
বেশিরভাগ ব্যাকেন্ডস কাঁচা পোস্টের ডেটা পার্স করে। পিএইচপি উদাহরণস্বরূপ, আপনার কাছে একটি অ্যারে থাকবে $_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"।
আপনি ServerXMLHTTPএকটি ভিবিএ প্রকল্পে একটি রেফারেন্স যুক্ত করে ব্যবহার করতে পারেন MSXML।
- ভিবিএ সম্পাদক খুলুন (সাধারণত একটি ম্যাক্রো সম্পাদনা করে)
- উপলব্ধ রেফারেন্সের তালিকায় যান
- মাইক্রোসফ্ট এক্সএমএল পরীক্ষা করুন
- ঠিক আছে ক্লিক করুন।
( ভিবিএ প্রকল্পের মধ্যে রেফারেন্সিং এমএসএক্সএমএল থেকে )
ServerXMLHTTP MSDN ডকুমেন্টেশন সব বৈশিষ্ট্য এবং ServerXMLHTTP পদ্ধতি সম্পর্কে পূর্ণ বিবরণ আছে।
সংক্ষেপে যদিও, এটি মূলত এটির মতো কাজ করে:
- খোলা কলরিমোট সার্ভারে সংযোগ রাখতে পদ্ধতিতে
- কল প্রেরণ অনুরোধ পাঠাতে।
- রেসপন্সএক্সএমএল , রেসপন্সটেক্সট , রেসপন্স স্ট্রিম বা রেসপন্সবডি এর মাধ্যমে প্রতিক্রিয়াটি পড়ুন
অন্যান্য ব্যবহারকারীর প্রতিক্রিয়া সম্পূর্ণ করতে:
এর জন্য আমি একটি "WinHttp.WinHttpRequest.5.1" অবজেক্ট তৈরি করেছি।
এক্সবি থেকে ভিবিএ ব্যবহার করে কিছু ডেটা সহ একটি পোস্টের অনুরোধ প্রেরণ করুন:
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")
ভিবিএ ব্যবহার করে এক্সেল থেকে টোকেন প্রমাণীকরণের সাথে একটি অনুরোধ পাঠান:
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
আমি এমএসএক্সএমএল লাইব্রেরি ব্যবহার করার আগে এবং তারপর এক্সএমএলএইচটিপিআরকোয়েস্ট অবজেক্টটি ব্যবহার করার আগে এখানে করেছি ।