target C NSString stringwithformat of URL - PullRequest
0 голосов
/ 30 мая 2011

Мне нужно, чтобы мое приложение отправило HTTP-запрос на мой сервер, это ссылка, но по какой-то причине, когда я создаю строку NSStringwithformat, не вся строка копируется в строку,

thisмой URL:

http://192.168.50.204:8080/webapi/originate?sofia/internal/408%25192.168.50.204%20'set:effective_caller_id_number=722772408,bridge:sofia/gateway/012smile/0545890183@212.199.220.21'%20inline%200545890183%200545890183

, если я добавлю его в браузер, он будет работать нормально.

, а это код:

self.feedURLString = [NSString stringWithFormat:@"http://192.168.50.204:8080/webapi/originate?sofia/internal/%@%25192.168.50.204%20'set:effective_caller_id_number=722772%@,bridge:sofia/gateway/012smile/%@@212.199.220.21'%20inline%20%@%20%@",extention,extention,PhoneNumber,PhoneNumber, PhoneNumber];

имейте в виду, чтов URL есть% 20 ​​и% 25, ​​возможно, это вызывает проблему ...

строка, которую я получаю в NSLog:

feedURLString = http://192.168.50.204:8080/webapi/originate?sofia/internal/408220'set:effective_caller_id_number=722772408,bridge:sofia/gateway/012smile/0545890183@212.199.220.21' 93610576nline2 @ 2 @

Ответы [ 3 ]

2 голосов
/ 30 мая 2011

удалить% 20 ​​и% 25 из строки затем используйте команду stringByAddingPercentEscapesUsingEncoding из NSString

string = [sURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
0 голосов
/ 30 мая 2011

Попробуйте написать URL с обычными символами вместо% 20 и% 25, ​​затем добавьте переменные, и когда у вас будет полная строка URL-адреса, используйте

[feedURLString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEndocing];

Редактировать: простите за двойной, я думаю, что ответ был очевиден:)

0 голосов
/ 30 мая 2011

Вы правы,% 20 почти наверняка вызывает проблему.

В любом месте строки, где вы хотите получить символ% в результате, вы должны писать %%.

Еще один вариант, который используют некоторые люди, - это оставить% s как есть, но использовать stringByReplacingOccurferencesOfString: withString: для подстановки.

например:

NSString *str = @"http://{HOST}/{USER}/blah";
str = [str stringByReplacingOccurrencesOfString:"{HOST}" withString:hostname];
str = [str stringByReplacingOccurrencesOfString:"{USER}" withString:username];
...