Visual Basic for Applications:
การส่งคำขอ HTTP ด้วยการตรวจสอบสิทธิ์พื้นฐาน
วิธีการ:
ใน VBA คุณสามารถใช้ห้องสมุด Microsoft XML, v6.0
(MSXML2) เพื่อส่งคำขอ HTTP ด้วยการตรวจสอบสิทธิพื้นฐาน วิธีนี้รวมถึงการตั้งค่าหัวข้อ "Authorization"
ของคำขอเพื่อรวมข้อมูลประจำตัวในรูปแบบที่เข้ารหัส base64 นี่คือคู่มือทีละขั้นตอน:
อ้างอิง MSXML2: ขั้นแรก ให้แน่ใจว่าโปรเจ็กต์ VBA ของคุณอ้างอิงไลบรารี
Microsoft XML, v6.0
ในตัวแก้ไข VBA ไปที่ Tools > References และตรวจสอบMicrosoft XML, v6.0
.สร้างและส่งคำขอ HTTP: ใช้ตัวอย่างโค้ด VBA ต่อไปนี้เป็นคู่มือ แทนที่
"your_username"
และ"your_password"
ด้วยข้อมูลประจำตัวจริงของคุณและปรับ URL ตามที่ต้องการDim XMLHttp As Object Set XMLHttp = CreateObject("MSXML2.XMLHTTP") Dim url As String url = "http://example.com/api/resource" ' แทนที่ด้วย URL จริง Dim base64Credentials As String base64Credentials = EncodeBase64("your_username:your_password") XMLHttp.Open "GET", url, False XMLHttp.setRequestHeader "Authorization", "Basic " & base64Credentials XMLHttp.send Debug.Print XMLHttp.responseText ' แสดงผลการตอบกลับไปยังหน้าต่าง Immediate
เข้ารหัสข้อมูลประจำตัวในรูปแบบ base64: VBA ไม่มีฟังก์ชันในตัวสำหรับการเข้ารหัส base64 แต่คุณสามารถใช้ฟังก์ชัน
EncodeBase64
ที่กำหนดเองนี้:Function EncodeBase64(text As String) As String Dim arrData() As Byte arrData = StrConv(text, vbFromUnicode) Dim objXML As MSXML2.DOMDocument60 Dim objNode As MSXML2.IXMLDOMElement Set objXML = New MSXML2.DOMDocument60 Set objNode = objXML.createElement("b64") objNode.dataType = "bin.base64" objNode.nodeTypedValue = arrData EncodeBase64 = objNode.Text End Function
สิ่งนี้จะส่งคำขอ GET ไปที่ http://example.com/api/resource
พร้อมข้อมูลประจำตัวการตรวจสอบสิทธิพื้นฐานที่ระบุ และพิมพ์คำตอบ
ศึกษาเพิ่มเติม
วิธีการที่ใช้ที่นี่ แม้ว่าจะมีประสิทธิผลสำหรับกรณีการใช้งานง่ายๆ ก็ตาม แต่ขึ้นอยู่กับโครงสร้าง Basic Authentication ซึ่งส่งข้อมูลประจำตัวในรูปแบบที่สามารถถอดรหัสได้ง่าย (การเข้ารหัส base64 ไม่ใช่การเข้ารหัส) เนื่องจากมีความเสี่ยง โดยเฉพาะในบริบทที่ไม่ใช่ HTTPS Basic Authentication จึงไม่แนะนำสำหรับการส่งข้อมูลที่ละเอียดอ่อนผ่านอินเทอร์เน็ตโดยไม่มีชั้นความปลอดภัยเพิ่มเติมเช่น SSL/TLS
โดยประวัติศาสตร์แล้ว Basic Authentication เป็นหนึ่งในวิธีแรกๆ ที่พัฒนาขึ้นเพื่อควบคุมการเข้าถึงทรัพยากรเว็บ ในปัจจุบัน มาตรฐานการตรวจสอบสิทธิ์ที่ปลอดภัยและยืดหยุ่นกว่า เช่น OAuth 2.0 มักถูกใช้สำหรับแอปพลิเคชันใหม่ๆ โดยทั่วไป เนื่องจากข้อจำกัดและความพึ่งพาภายนอกสำหรับวิธีการตรวจสอบสิทธิ์ที่ยากขึ้น นักพัฒนามักใช้ VBA ในสภาพแวดล้อมภายในหรือที่มีความสำคัญด้านความปลอดภัยน้อยลง หรือใช้เป็นก้าวขึ้นสู่การสร้างต้นแบบความคิดอย่างรวดเร็ว
เมื่อใช้ VBA สำหรับคำขอ HTTP จำไว้ว่าแต่ละเวอร์ชันของห้องสมุด MSXML อาจรองรับคุณสมบัติและมาตรฐานความปลอดภัยที่แตกต่างกัน ใช้เวอร์ชันล่าสุดที่เข้ากันได้กับแอปพลิเคชันของคุณเพื่อความปลอดภัยและประสิทธิภาพที่ดีขึ้น นอกจากนี้ พิจารณาข้อจำกัดด้านสิ่งแวดล้อมและคุณสมบัติที่อาจล้าสมัยเมื่อเลือกใช้ VBA สำหรับโปรเจ็กต์ใหม่ๆ โดยเฉพาะโครงการที่ต้องการการสื่อสาร HTTP ที่ปลอดภัย สภาพแวดล้อมการเขียนโปรแกรมหรือภาษาอื่นๆ อาจเสนอโซลูชันที่มั่นคง ปลอดภัย และสามารถบำรุงรักษาได้มากกว่าสำหรับงานที่คล้ายคลึงกัน