เมื่อพัฒนาเว็บแอปพลิเคชันที่ใช้ API เราจำเป็นต้องเชื่อมต่อกับบริการเว็บและ URL ที่หลากหลาย URL อาจมีอักขระพิเศษ ข้อความค้นหา ข้อความค้นหา ส่วนหัว และอื่นๆ อีกมากมาย ขึ้นอยู่กับบริการที่เราต้องการ นั่นเป็นเหตุผลที่เราจำเป็นต้องมีการเข้ารหัสบางอย่างเพื่อให้ URL ที่เรากำลังสร้างและ URL ที่เรียกนั้นเหมือนกัน
เพื่อให้บรรลุเช่นเดียวกันกับวัตถุประสงค์ C เราสามารถใช้ −
#import "NSString+URLEncoding.h"
@implementation NSString (URLEncoding)
-(NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding {
return (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
(CFStringRef)self, NULL, (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ", CFStringConvertNSStringEncodingToEncoding(encoding));
}
@end อีกวิธีหนึ่งในการเข้ารหัส URL ใน Objective C คือ -
NSString *sUrl = @"http://www.myService.com/search.jsp?param= name"; NSString *encod = [sUrl stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
ในทำนองเดียวกัน การเข้ารหัส URL สามารถทำได้ใน Swift เช่น -
func getURL(str: String ) {
return str.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)
} ซึ่งจะส่งคืนสตริง URL ที่เข้ารหัสและใช้งานได้เช่น
var sURL = " http://www.myService.com/search.jsp?param= name" print(getURL(sURL))
ซึ่งจะพิมพ์ออกมาดังนี้
http://www.myService.com/search.jsp?param= name