এক্সেল স্প্রেডশিট থেকে 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
আমি এমএসএক্সএমএল লাইব্রেরি ব্যবহার করার আগে এবং তারপর এক্সএমএলএইচটিপিআরকোয়েস্ট অবজেক্টটি ব্যবহার করার আগে এখানে করেছি ।