วันศุกร์ที่ 19 สิงหาคม พ.ศ. 2559

cURL on SIS


คราวนี้ เรามาทดลอง curl บน ASP.NET กันบ้าง ซึ่ง .NET จะใช้การ Post Back และมี ViewState คอยช่วยในการเก็บ state ของหน้า Page ต่าง ๆ ทีนี้ เราจะต้องไป Get ค่า Parameter ต่าง ๆ ช่วยด้วยโดย ตัวอย่างนี้ จะเป็นการ Login ของ http://sis.phuket.psu.ac.th

Steps:  

ขั้นที่ 1 เรียกหน้า Login: https://sis-phuket1.psu.ac.th/WebRegist2005/Login.aspx โดยเข้าไป Get parameters ต่าง ๆ ให้ครบ

ขั้นที่ 2: Post User/Password ลงไปใน https://sis-phuket1.psu.ac.th/WebRegist2005/Login.aspx เพื่อทดลอง Login ผ่าน curl

Tools


1) Fiddler  เป็นโปรแกรมช่วย Parameter ต่าง ๆ ที่จำเป็น (คล้าย ๆ กับ Wireshark) แต่อันนี้ ออกแบบมาสำหรับ HTTP โดยเฉพาะ ใช้งานง่ายกว่า ถ้าไม่ใช้ Fiddler (หรือโปรแกรมช่วยอื่น ๆ) เราก็ต้องไป View source code แล้วก็ไปแกะเอาเอง ว่าหน้า Page จะส่งอะไรมาบ้าง (บางอย่างก็ถูก encode ใน javascript ด้วย) ซึ่งจะยุ่งยากกว่ามากสำหรับ Page ที่มีความซับซ้อน



2) Simple HTML Dom Parser  หลังจากที่ใช้ curl ดึงหน้า หลักมา การที่จะไป scrap เอาค่าใน page เพื่อให้ง่ายขึ้น ผมใช้ library ของ PHP Simple HTML Dom Parser เพื่อตัดค่าที่ีจะต้อง Post เข้าไปในระบบ (เช่น viewState)

ว่าแล้วก็สามารถทำตามตัวอย่างได้เลยครับ



Login ได้แล้วครับ (แต่ว่า รูปภาพ และ CSS ไม่แสดง เพราะ ไม่ได้เขียน curl ให้ download มาทั้งหมดนะครับ) ใครอยากลองปรับแต่งเขียนให้ download มาให้ครบ ๆ หรือ ตรวจสอบผลลัพธ์ว่า Login มาถูกต้องหรือไม่ หรือจะให้ Link ไปเมนูอื่น ๆ ทีนี้ ก็สามารถทำได้ไม่ยากแล้วครับ


Update: 19 ส.ค. 59

ไม่มีความคิดเห็น: