Xamarin

วิธี Encode URL ใน C# และ Xamarin

ในการติดต่อกับ Web Service หรือ Web API ในแอพพลิเคชั่น Xamarin บางครั้งเราจำเป็นต้องส่งข้อความ ที่เรียกกันติดปากว่า String ไปกับ URL ด้วย โดยเฉพาะในการติดต่อกับ Facebook API

กรณีที่จำเป็นต้อง Encode String

อย่างเช่นการโพสรูปภาพไปบน Timeline จะมีส่วนที่เรียกว่า caption ที่เราส่งไปเป็น caption ของภาพที่อัพโหลดได้

caption=...

เพียงแต่ถ้าส่งข้อความแบบนี้ไป จะมีปัญหาเอา…

caption=Hi! Nextflow

ซึ่งส่วนสำคัญที่จะทำให้เกิดความผิดพลาดในตัวอย่าง คือ “ช่องว่าง” (White space) และพลเอาอักขระที่สามารถใช้งานใน URL String มาไว้ด้านล่าง สำหรับคนที่อยากรู้ ซึ่งอ้างอิงจากมาตรฐาน RFC 1738

$-_.+!*'(),

Class C# ที่ช่วยแปลงข้อความ

Uri.EscapeDataString(string)

โดยตัว Method จะรับข้อความธรรมดาทั่วไปอย่าง “Hi! Nextflow” แปลงเป็น

Hi%21%20Nextflow

เพื่อที่จะสามารถใช้ใน URL String ได้สบายๆ

$"caption={Uri.EscapeDataString("Hi! Nextflow")}"

 

** จากการค้นหาข้อมูล Uri.EscapeDataString จะแปลงข้อความรับกับมาตรฐาน RFC 1738 ที่ใช้กันอยู่ในปัจจุบันใน .NET 4.5 เป็นต้นไปนะ

อ้างอิงจาก – StackOverflow

Loading Facebook Comments ...
Menu