มาถึงคราวนี้ เราก็จะมาลองเขียน ASP
เพื่อเรียกใช้ Microsoft Internet Transfer Control (หรือที่รู้จักกันดีในชื่อ
Inet Control) สำหรับ Inet Control จะมีความสามารถทางด้าน Internet ทั้ง
รับ-ส่ง ข้อมูล ผ่านทางเว็บ โดย Inet Control จะ รองรับได้กับ Protocol ต่างๆ
อันได้แก่ FTP, Gopher, HTTP และ HTTPS
และสำหรับบทความนี้ เราจะใช้ HTTP
(Hypertext Transfer Protocol: โปรโตคอล ที่ใช้ในการติดต่อรับส่งข้อมูลผ่านเว็บ)
ในการ รับข้อมูลที่เป็น html จากหน้าเว็บ อื่นๆ โดยจำเป็นจะต้องลงโปรแกรมต่างๆ
ก่อนการทดลองเขียนโค้ดกัน ดังนี้
-Web Server (อาจจะใช้ PWS สำหรับ
Win9X หรือ IIS สำหรับ Windows NT,2000,XP)
-Visual Studio 6 โดยให้ลง Visual basic ด้วย
การที่เราลง
Visual Studio ก็เพื่อจะใช้งาน Microsoft Internet Transfer Control ที่จะมีมาให้หลังจากเราลง
Visual basic และสำหรับ version ของ Visual Studio ควรจะเป็น version 6 เพราะ
ใน version 5 ยังมี bug สำหรับ Inet Control อยู่
Download หน้าเว็บ
จากเว็บอื่นๆ
สำหรับตัวอย่างนี้ เราก็จะมาเขียนโค้ดในการใช้
Inet Control ไปนำข้อมูลของหน้าเว็บเพจอื่น มาแสดงบนหน้าเว็บของเราเอง
aspwininet.asp
<%
Option Explicit
Dim objInet
Dim strDownloadedCode
Set objInet = Server.CreateObject("InetCtls.Inet")
objInet.RequestTimeOut = 60
strDownloadedCode = objInet.OpenURL("http://www.google.com")
%>
<textarea name="textfield" cols="60" rows="25"><%=strDownloadedCode%></textarea>
|
ให้คุณทำการคัดลอกโค้ดข้างต้น บันทึกไว้ใน
Home Directory (สำหรับเครื่องผมอยู่ที่ c:\inetpub\wwwroot)ครับ
จากโค้ดข้างต้น พอจะอธิบายการทำงานได้คือ
โค้ดทำการสร้าง Inet Control โดยใช้ function CreateObject หลังจากนั้นก็จะทำการกำหนดค่า
RequestTimeOut ซึ่งเป็นค่าเวลาของ Inet Control ต่อไป จะเป็นการใช้ function
OpenURL เพื่อ นำโค้ดของเว็บ http://www.google.com มาเก็บไว้ในตัวแปร strDownloadedCode
และสุดท้าย จะเป็นการแสดงผลที่ได้ลงใน TextBox ซึ่งผลของโปรแกรม แสดงดังรูปด้านล่าง
ทิ้งทาย
หากว่าเครื่อง Web Server ที่คุณ Run
โค้ดข้างต้น สามารถติดต่อผ่าน Proxy Server เพื่อให้เกิดความรวดเร็ว คุณสามารถที่จะกำหนด
Property AccessType และ Property Proxy เพื่อใช้งาน Proxy Server ที่อยู่บนระบบ
Network ของคุณได้ โดย เพิ่ม บรรทัดต่อไปนี้ลงในโค้ด
objInet.AccessType=2 'icNamedProxy
objInet.Proxy = "Proxy1"
ข้างต้นจะเป็นการกำหนดเพื่อใช้ Proxy
Server ที่ชื่อ Proxy1
*** การทำงานของ โค้ด
asp ข้างต้น อาจมีปัญหา บนเครื่องที่ใช้ Windows XP โดยจะมีการฟ้อง error
ว่า COM Surrogate ซึ่งเหตุเนื่องมาจาก Componet Inet มีการทำงานบางอย่าง
ที่ไม่เข้ากับ ระบบ Windows XP แต่สำหรับการทำงานร่วมกับ Windows NT ผมยังไม่พบปัญหาใดๆครับ
หากใครมีข้อมูลเพิ่มเติม ขอให้เมล์มาแจ้งผม เพื่อที่จะได้เผยแพร่ความรู้
ให้กับเพื่อนๆ ต่อไปครับ
สำหรับการใช้งานจริง คุณจำเป็นจะมี
Server ที่มีการลง Visual basic หรือ มีการนำ MS Internet Transfer Control
มาลงไว้ และสำหรับคนที่เช่า Server ก็คงบอกได้คำเดียวว่า เค้าคงไม่มีไว้ให้แน่ๆครับ
และคำถามที่น่าจะเกิดขึ้นคือ ไปเอาหน้าเว็บชาวบ้าน มาทำอะไรหละ คำตอบ ขึ้นอยู่กับคุณว่าจะเอาไปประยุกต์ทำอะไร
แต่สำหรับผม ได้นำแนวทางนี้ ไปทำระบบ ดูดข่าว จากเว็บอื่น แต่ผมก็ได้แสดงข้อมูลว่าเอามาจากเว็บไหน
เพื่อเป็นการท้อยทีท้อยอาศัย ซึ่งกัน
แล้วพบกันใหม่กับ 9M |