解决AFNetworking封装baseUrl后接内容被忽略

解决AFNetworking封装baseUrl后接内容被忽略

作为iOS开发一年半的菜鸟级工程师,最近遇到一个问题突然就解决不了。

因为后台测试需要要求把baseUrl换掉,换掉本来没有什么问题,以为很容易的问题,因为前期封装好了啊,其实不然,我原本的baseURL是只有域名的(例:http://www.baidu.com),  但是新换的这个是在域名后面添加了路径。

一开始我以为是AFNetworking里面做了什么忽略,就开始研究源码,始终没找到原因,不知道他是怎么拼接会出来这种问题的,后来 终于看懂,在AFHTTPSessionManager中找到。是因为下面这段代码,


[NSURL URLWithString:URLString relativeToURL:self.baseURL]  就是它!!!

因为URLWithString  relativeToURL :  方法会自动省略掉后面的内容。。

 解决办法就是 

在baseURL后拼接一个空字符串,即可解决这个问题,如果baseURL本身结尾带“/”,则空字符串不产生作用;如果baseURL结尾没有“/”,则拼接完成后会在baseURL上加入“/”。

如果这时再执行URLWithString  relativeTOURL:就不会去掉任何字段了

并且注意baseURL 后接URL 不要有“/”   !!!




同时感谢简书作者:OneCoinMan!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容