AFN 3.0学习总结(六)

参考:3.0 源码解读(二)之 AFHTTPSessionManager

说明:很多内容都是摘抄原文,只是根据自己的需要进行摘抄或者总结,如有不妥请及时指出,谢谢。

AFHTTPSessionManagerAFURLSessionManager的子类,是专门为HTTP请求设计的。里边涉及到了GET,POST,PUT,DELETE 等等HTTPMehtod。因此我们要想正确的使用各种方法,就要理解每个method的含义。
可以通过这篇文章来了解HTTP Method详细解读(GET HEAD POST OPTIONS PUT DELETE TRACE CONNECT)。

相对路径(relative)

假如有一个基础路径NSURL *baseURL = [NSURL URLWithString:@"http://example.com/v1/"];我们暂时命名为baseURL.所谓 相对 肯定跟这个baseURL有关系。

我们可以通过NSURL +URLWithString:relativeToURL:这个方法来获取一个路径,至于怎么使用,我们通过一个例子来说明:

NSURL *baseURL = [NSURL URLWithString:@"http://example.com/v1/"];
[NSURL URLWithString:@"foo" relativeToURL:baseURL];                  
// http://example.com/v1/foo
[NSURL URLWithString:@"foo?bar=baz" relativeToURL:baseURL];          
// http://example.com/v1/foo?bar=baz
[NSURL URLWithString:@"/foo" relativeToURL:baseURL];                 
// http://example.com/foo
[NSURL URLWithString:@"foo/" relativeToURL:baseURL];                 
// http://example.com/v1/foo
[NSURL URLWithString:@"/foo/" relativeToURL:baseURL];                    
// http://example.com/foo/
[NSURL URLWithString:@"http://example2.com/" relativeToURL:baseURL]; 
// http://example2.com/

部分总结

到目前为止,AFN的核心模块都分析完了,那对接口的调用顺序进行简单的总结,拿post方法为例


post.png

时序图只是为了描述类的调用顺序,不规范的地方请主动忽略,大类中的派生类没有画出来
再用文字简单描述一下:
1、创建request
2、使用session根据request创建task
3、绑定block
4、启动task
5、接收数据回掉
6、完成,任务结束

你可能感兴趣的:(AFN 3.0学习总结(六))