周一公司后台老大忽然让换一个下载文件的URL,按照要求换了之后,一直返回400,用的是ASIHTTPRequest,最让我崩溃的是在postman和Chrome都返回200,甚至换成NSURLRequest也200,在经历了修改Content-Type,Accept-Encoding,Connection ,Host and so on所有跟request header有关的属性之后,万年的400让我开始怀疑换AFNetworking---------but,作为一个程序员的基本素养,遇到bug要解决而不是逃避啊,正好公司项目也不急着上线,嗯,我就在一个刚睡醒的下午把Chrome中开发者工具所有有关request header的属性直接copy and paste,注意前方高能!!!!!!!它竟然就这么好了,我激动得,嗯,又一个个删掉发现是最下面的一个叫User-Agent的叼毛在搞鬼,然后,xcode--打断点--找出默认的User-Agent,来,感受一下,它长这样的
果断手动换掉特殊字符,随便写个字符串,甚至是nil也OK,跟后台沟通说是新的URL换了框架,可能新框架加了User-Agent识别规则,至此,这个bug算是得到解决。
后面查资料,发现NSURLRequest默认不带User-Agent的,ASIHTTPRequest如果不手动设置User-Agent会自己生成一个,嗯,就是那个乱码的。
希望能帮助到有需要的小伙伴们,一起在消灭bug的道路上引吭高歌~~
1224

被折叠的 条评论
为什么被折叠?



