什么时候使用NSURLProtocol?
** 1、提供自定义的网络响应请求**
无论你使用什么来制作,比如UIWebView,NSURLConnection 甚至第三方库(比如AFNetworking, MKNetworkKit, 自定义的等,这些都是基于NSURLConnection的)。你可以弄个自定义的,既用于数据也用于元数据。你也许会愿意这样做,如果你是用来进行测试 的话。
2、减少网络请求,使用本地数据
有时候你可以会认为为程序提供某些需要的数据来进行网络连接是没必要的。NSURLProtocol可以使你的程序在本地缓存或者数据库中进行数据检索。
3、重定向网络请求
你曾经望过可以将请求重定向到一个代理服务器——不经过用户来允许而让IOS程序定位?恩,这是可以的!NSURLProtocol 为你提供了你所想要的-控制请求。你可以设定你的程序拦截或者重定向它们到另一个服务器或者代理服务器,或者你任何想想连接的。这是绝对的控制!
4、改变用户请求代理
在进行任何网络请求前,你可以决定是否改变它的元数据或者数据。举例来说,你可以改变用户的代理。这对于服务器根据用户代理而改变是很有用的。比如根据用户的使用环境或者客户端语言来返回不同的内容。
5、使用自定义网络协议
你也行有自己的网络协议(比如,一些建立于UDP基础上的)。你可以在程序中实现它,或者你也可以选择使用一些其它你喜欢的网络协议库。
- 自定义请求和响应
- 提供自定义的全局缓存支持
- 重定向网络请求
- 提供HTTP Mocking(方便前期测试)
- 其他一些全局的网络请求修改需求