2013-03-15 9 views
6

Sto cercando di codificare una stringa, ma NSURLConnection non funziona a causa di un 'url non valido'. Ecco il mio URL:Come codificare l'URL su 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]; 

Ecco l'esempio del API di chiamare l'URL:

Di seguito è un esempio di chiamare le API per l'indirizzo per la corrispondenza esatta indirizzo "2114 Bigelow Ave", "Seattle , WA ":

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

Per qualche motivo questo URL non riesce a connettersi. Qualcuno mi può aiutare?

risposta

16

Devi codificare il tuo fullAddressURL prima di inviarlo a NSURL invece dell'indirizzo di codifica & cityState individualmente.

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]; 

Ho testato sopra il codice e mi sta dando stesso output determinato link http://www.zillow.com/webservice/GetDeepSearchResults.htm?zws-id=<ZWSID>&address=2114+Bigelow+Ave&citystatezip=Seattle%2C+WA

+0

In realtà, l'uscita sto ottenendo non ha i segni più e% 2C sostituendo la virgola. Come stai ottenendo che ciò accada? Sto usando lo stesso metodo e gli stessi argomenti per codificare l'indirizzo. –