При передаче параметров в строке URL в iOS могут возникнуть проблемы с формированием правильной строки адреса URL. Причиной этого могут быть не правильно закодированные символы в адресе, например пробелы. Чтобы этого избежать необходимо кодировать строку адреса. Закодировать строку которая будет использоваться в качестве URL в iOS очень просто. Для этого достаточно выполнить лишь один метод, который преобразует незакодированную строку в закодированную.
Непосредственно сам метода кодировки
NSString *fullUrlString = [loginUrlString stringByAppendingString:params]; NSString *properlyEscapedURL = [fullLoginUrlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
Пример применения метода кодировки
NSString *urlString = @"/rest/resource/method"; NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; [dateFormatter setDateFormat:@"dd.MM.yyyy"]; NSDateFormatter *dateFormatterForSecondDate = [[[NSDateFormatter alloc] init] autorelease]; [dateFormatterForSecondDate setDateFormat:@"dd.MM.yyyy HH:mm"]; NSString *userIdStr = [currentUserIdNumber stringValue]; NSString *userIdParam = [@"?userId=" stringByAppendingString:userIdStr]; NSString *fromCityParam = [@"&fDispCity=" stringByAppendingString:fromCity]; NSString *toCityParam = [@"&fDeliveryCity=" stringByAppendingString:toCity]; NSString *fromDateParam = [@"&fDate=" stringByAppendingString:[dateFormatter stringFromDate:fromDate]]; NSString *weightParam = [@"&fTruckCategory=" stringByAppendingString: [MyEnums getNameForTruckCategory:truckCategory]]; NSString *toDateParam = [@"&fDateAlong=" stringByAppendingString: [dateFormatterForSecondDate stringFromDate:toDate]]; NSMutableString *params = [NSMutableString stringWithString:userIdParam]; [params appendString:fromCityParam]; [params appendString:toCityParam]; [params appendString:fromDateParam]; [params appendString:weightParam]; [params appendString:toDateParam]; NSString *fullUrlString = [loginUrlString stringByAppendingString:params]; NSString *properlyEscapedURL = [fullLoginUrlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *url = [NSURL URLWithString:properlyEscapedURL];
Комментариев нет:
Отправить комментарий