使用ASIHTTPRequest這個套件去呼叫api位址。
https://maps.googleapis.com/maps/api/place/search/json?location=25.04842,121.51707&radius=1000&language=zh-TW&name=餐廳&sensor=false&key=*****************************
假設要在台北車站附近找餐廳,在未經處理之前作法是:
NSString *requestURL = [[NSString alloc] initWithFormat: @"https://maps.googleapis.com/maps/api/place/search/json?location=%@&radius=%@&language=%@&name=%@&sensor=%@&key=%@",location ,radius, language, name, sensor, key, nil];
這樣會導致bad url
escape之後:
NSString *requestURL = [[[NSString alloc] initWithFormat: @"https://maps.googleapis.com/maps/api/place/search/json?location=%@&radius=%@&language=%@&name=%@&sensor=%@&key=%@",location ,radius, language, name, sensor, key, nil] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
就能夠正常運作了
google問題過程中找到的code,先記一下連結位址,以後可能有用
http://freequartz.googlecode.com/svn/trunk/CoreFoundation/CFStringEncodingExt.h
