2013-03-15 11 views
6

Próbuję kodować kodowanie adresu URL, ale połączenie NSURLConnection nie działa z powodu "nieprawidłowego adresu URL". Oto mój adres URL:Sposób kodowania adresu URL kodu 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]; 

Oto przykład API za wywoływania URL:

Poniżej znajduje się przykład wywołanie API na adres do dokładnego adresu meczu „2114 Bigelow Ave”, „Seattle , WA ":

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

Z jakiegoś powodu ten URL nie łączy się. Czy ktoś może mi pomóc?

Odpowiedz

16

Musisz zakodować swój pełnyAddressURL przed wysłaniem go do NSURL zamiast kodowania adresu & cityState indywidualnie.

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

Ja testowałem powyższy kod i to daje mi taką samą moc jak dany odnośnik http://www.zillow.com/webservice/GetDeepSearchResults.htm?zws-id=<ZWSID>&address=2114+Bigelow+Ave&citystatezip=Seattle%2C+WA

+0

Właściwie Wyjście Dostaję nie posiada znaki plus i% 2C zastępując przecinek. Jak to się dzieje? Używam tej samej metody i argumentów, aby zakodować adres. –