บทความนี้แนะนำวิธีการ ASP จำลองคำขอ POST เพื่อส่งข้อมูลแบบอะซิงโครนัสเป็นหลัก บทความนี้ใช้ MSXML2.SERVERXMLHTTP.3.0 เพื่อใช้คำขอ POST เพื่อนที่ต้องการสามารถอ้างอิงถึงสิ่งต่อไปนี้
บางครั้งจำเป็นต้องรับข้อมูลบางอย่างจากเว็บไซต์ระยะไกล และเซิร์ฟเวอร์จำกัดวิธี GET และสามารถส่งผ่านข้อมูล POST เท่านั้น ในขณะนี้ เราสามารถจำลองการส่งข้อมูลโพสต์ผ่าน asp ได้ มีตัวอย่างมากมายบนอินเทอร์เน็ต . ต่อไปนี้เป็นฟังก์ชันที่ค่อนข้างกระชับและเข้าใจง่ายที่ฉันเขียนเอง
ก่อนอื่น จำเป็นต้องมีฟังก์ชันสำหรับการตั้งค่าการเข้ารหัส เนื่องจากโดยทั่วไปแล้ว asp จะเป็น gbk และเว็บไซต์มาตรฐานส่วนใหญ่ในปัจจุบันก็ใช้ utf-8 ดังนั้นจึงจำเป็นต้องมีการแปลง
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชั่น BytesToBstr (ร่างกาย, Cset)
objstream สลัว
ตั้ง objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.เปิด
objstream เขียนเนื้อหา
objstream ตำแหน่ง = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.ปิด
ตั้ง objstream = ไม่มีเลย
สิ้นสุดฟังก์ชัน
ขั้นตอนที่สองคือการใช้ส่วนประกอบในการส่งข้อมูลโพสต์ ฉันใช้ MSXML2.SERVERXMLHTTP.3.0 ที่นี่ แน่นอนว่าคนอื่นก็สามารถใช้ได้เช่นกัน
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชั่น PostHTTPPage (url, ข้อมูล)
สลัวHttp
ตั้งค่า Http=server.createobject("MSXML2.SERVERXMLHTTP.3.0")
Http.open "POST", url, false
Http.setRequestHeader "ประเภทเนื้อหา", "application/x-www-form-urlencoded"
Http.send (ข้อมูล)
ถ้า Http.readystate<>4 แล้ว
ฟังก์ชั่นทางออก
จบถ้า
PostHTTPPage=bytesToBSTR(Http.responseBody,"utf-8")
ตั้งค่า http=nothing
ถ้า err.number<>0 แล้ว err.Clear
สิ้นสุดฟังก์ชัน
นี่คือวิธีการทำงาน:
คัดลอกรหัสรหัสดังต่อไปนี้:
โพสต์HTTPPage("www.vevb.com","str1=a&str2=b&str3=c")