2013-03-15 27 views
6

Bir dizeyi kodlamaya çalışıyorum, ancak NSURLConnection bir 'hatalı url' nedeniyle başarısız oluyor. İşte URL NSString'i kodlamak için nasıl

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'yi çağırma API örnektir: Aşağıda

tam adresi maçı "2114 Bigelow Ave", "Seattle için adresi için API çağıran bir örnek olduğunu İşte benim URL , WA ":

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

Bu nedenle bu URL bağlanılamıyor. Birisi bana yardım edebilir mi?

cevap

16

TamAddressURL kodunuzu, & cityState adresini tek tek kodlamak yerine NSURL adresine göndermeden önce kodlamalısınız.

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

kod yukarıda test ettik ve onu http://www.zillow.com/webservice/GetDeepSearchResults.htm?zws-id=<ZWSID>&address=2114+Bigelow+Ave&citystatezip=Seattle%2C+WA

+0

Aslında verilen bağlantı olarak bana aynı çıktıyı veriyor, ben artı işaretleri ve virgül yerine% 2C yok alıyorum çıktı. Bunu nasıl yapıyorsun? Adresi kodlamak için aynı yöntemi ve argümanları kullanıyorum. –

İlgili konular