Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> IOS

จะ URL เข้ารหัสสตริง (NSString) ใน iPhone ได้อย่างไร


เมื่อพัฒนาเว็บแอปพลิเคชันที่ใช้ 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 = @"https://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 = " https://www.myService.com/search.jsp?param= name"
print(getURL(sURL))

ซึ่งจะพิมพ์ออกมาดังนี้

https://www.myService.com/search.jsp?param= name