2012-03-10 64 views
1

我正在使用來自iOS應用程序的Google Geocoding API v3 [1],但無法讓它返回gzip響應。 v2的重量輕得多,但是v3我得到了一個〜20kb的JSON響應......這可能需要一些時間才能在壞的GPRS連接上找回,所以我真的很想得到一個gzip的結果。支持來自Google地理編碼API的gzip響應

我在想我是否在我的電話中做錯了什麼,或者他們的API真的不支持gzip或deflate。這聽起來很奇怪。

這是我在我的代碼正在做:

NSURL *url = [NSURL URLWithString:@"http://maps.googleapis.com/maps/api/geocode/json?latlng=55,12&sensor=true"]; 

NSMutableURLRequest *req = [[NSMutableURLRequest alloc] initWithURL:url]; 
[req setValue:@"gzip,deflate" forHTTPHeaderField:@"Accept-Encoding"]; 

NSURLConnection *c = [[NSURLConnection alloc] 
    initWithRequest:req delegate:self startImmediately:YES]; 

我只用「壓縮」試圖與「放氣」了。同樣的結果。

[1] http://code.google.com/apis/maps/documentation/geocoding/

回答

1

我不知道爲什麼,但它似乎有事情做與User-Agent頭。當我用Firefox(Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2)請求API頁面時,我得到了一個gzip的響應。當我用cURL請求頁面(特別是要求壓縮的響應)時,我得到一個明確的響應。但是,如果我將cURL的默認代理覆蓋到Mozilla one,我會獲得壓縮響應。

+0

您現在就在!我使用了Firefox標題,現在我得到了gzip結果。謝謝! – 2012-03-10 11:52:14