2013-03-15 2 views
6

Я пытаюсь кодировать строку, но NSURLConnection не работает из-за «плохого URL-адреса». Вот мой URL:Как кодировать URL-адрес NSString

NSString *address = mp.streetAddress; 
    NSString *encodedAddress = [address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
    NSString *cityState= mp.cityState; 
    NSString *encodedCityState = [cityState stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

    NSString *fullAddressURL = [NSString stringWithFormat:@"http://www.zillow.com/webservice/GetDeepSearchResults.htm?zws-id=<X1-ZWz1bivd5de5mz_8xo7s>&address=%@&citystatezip=%@", encodedAddress, encodedCityState]; 
    NSURL *url = [NSURL URLWithString:fullAddressURL]; 

Вот пример АНИ о вызове URL:

Ниже приведен пример вызова API для адреса для точного адреса матча «2114 Bigelow Ave», «Сиэтл , WA ":

http://www.zillow.com/webservice/GetDeepSearchResults.htm?zws-id=<ZWSID>&address=2114+Bigelow+Ave&citystatezip=Seattle%2C+WA 

По какой-либо причине этот URL-адрес не удается подключиться. Кто-нибудь может мне помочь?

ответ

16

Вы должны закодировать ваш fullAddressURL перед отправкой его на адрес NSURL вместо адреса кодировки & cityState индивидуально.

NSString *address = @"2114 Bigelow Ave"; 
//NSString *encodedAddress = [address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
NSString *cityState= @"Seattle, WA"; 
// NSString *encodedCityState = [cityState stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

NSString *fullAddressURL = [NSString stringWithFormat:@"http://www.zillow.com/webservice/GetDeepSearchResults.htm?zws-id=<X1-ZWz1bivd5de5mz_8xo7s>&address=%@&citystatezip=%@", address, cityState]; 
fullAddressURL = [fullAddressURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
NSLog(@"fullAddressURL: %@",fullAddressURL); 

NSURL *url = [NSURL URLWithString:fullAddressURL]; 

Я тестировал выше кода, и это дает мне тот же результат, как данной ссылке http://www.zillow.com/webservice/GetDeepSearchResults.htm?zws-id=<ZWSID>&address=2114+Bigelow+Ave&citystatezip=Seattle%2C+WA

+0

На самом деле, выход я получаю не имеет признаков плюс и% 2C заменяющий запятой. Как вы это понимаете? Я использую тот же метод и аргументы для кодирования адреса. –

Смежные вопросы