当执行反向地理编码请求时,Google 会神奇地识别我的 iPhone 语言
我使用以下 url 发送一个简单的 url 请求:
urlString = [NSString stringWithFormat:
@"http://maps.googleapis.com/maps/api/geocode/xml?latlng=%f,%f&sensor=true", lat, lng];
假设我当前的位置是欧洲、罗马尼亚、奥拉迪亚。
例如,如果我将 iPhone 设置为德语,我会得到德语的城市名称。不知何故,Google 神奇地知道我的 iPhone 是德国手机,并返回德语 (Grosswardein) 的地理编码数据。问题是我真的希望不翻译城市名称(罗马尼亚语奥拉迪亚)。谷歌如何知道我的 iPhone 的语言是德语,我该如何阻止这种情况。我没有使用 MKReverseGeocoder,因为我无法关闭此功能,但现在我在这里面临完全相同的问题。
更新:没有发送标头: [request allHTTPHeaderFields]
返回 null。看来谷歌是有洞察力的。
更新:此:[request setValue:@“*”forHTTPHeaderField:@“Accept-Language”]
似乎有效。 据我从此处的理解,我应该使用星号。顺便说一句 Wireshark 非常棒。
Im sending a simple url request using the following url:
urlString = [NSString stringWithFormat:
@"http://maps.googleapis.com/maps/api/geocode/xml?latlng=%f,%f&sensor=true", lat, lng];
Let's say my current location is Europe, Romania, Oradea.
If I set my iPhone to German for example, I get the city name in german. Somehow Google magically knows that my iPhone is German and returns geocoding data in german (Grosswardein). The problem is I would really like to have the city name untranslated (Oradea in romanian). How does google know that my iPhone's language is German, and how do I stop this. I'm not using MKReverseGeocoder because I couldn't turn this feature off but now I'm facing the exact same problem here.
Update: There are no headers sent:[request allHTTPHeaderFields]
returns null. It seems Google is clairvoyant.
Update: This: [request setValue: @"*" forHTTPHeaderField: @"Accept-Language"]
seems to work.
As far as I understand from here I should use an asterisk. BTW Wireshark is awesome.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以尝试查看您的请求是否包含
Accept-Language
HTTP 标头。不知道你是如何发送的,但听起来确实如此。You could try to see if your request includes
Accept-Language
HTTP headers. Dunno how you send it, but it sounds like it does.