在做本地化的时候,为了配合服务器端的内容本地化,需要从客户端获取当前的语言环境,告诉服务器端。我们采取的是每当在发起request的时候,在请求头部设置一下accept-Language的属性,这样服务器就能直接对头进行抽取判断,不用添加一个字段来支持。
但是在iOS调用 NSMutableURLRequest 的 setValue: forHTTPHeaderField 方法时,发现不管怎么设置这个语言属性,服务器端在接受到请求头进行抽取Language时,Language都无法相应地改变,比如:先后设置为 zh-cn以及 en-gb ,服务器端抓到,都是zh-cn,一开始以为设置错了,查找好久都毫无头绪,后来尝试改变了一个设备的本地语言环境,竟然发现,这个请求头的language竟然受到iphone当前语言环境的控制,什么语言环境发送的request,服务器那边抓的header就是什么语言的。很奇怪,难道这个属性被苹果封死了?无法修改?