美文网首页
解决AFNetworking封装baseUrl后接内容被忽略

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

作者: 默着 | 来源:发表于2017-07-25 10:34 被阅读63次

    解决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!!!

    相关文章

      网友评论

          本文标题:解决AFNetworking封装baseUrl后接内容被忽略

          本文链接:https://www.haomeiwen.com/subject/gmgbkxtx.html