关于这个框架其实是AFN的作者Matt Thompson用Swift写的一个轻量级别的网络框架。
在接收全新的框架之前,我觉得我们第一时间要去做的就是去阅读官方文档,以及去下载官方的示例程序。
废话不多说,先记录下自己的一些使用情况和一些笔记。
发送网络请求的方法,其中
参数1:传入url地址
参数2:传入发送请求的方式
参数3:发送请求的参数
参数4:指定服务器支持的编码的格式,如果服务器支持的编码格式不是UTF8的话,我们就可以通过指定encoding来指定编码的格式
参数5:需要告诉服务器的额外信息的,也就是请求头的信息,我们要传入什么比如说我们可以设置User-Agent或者是Accept-Language等等
Alamofire.request(url:,
method:,
parameters:,
encoding:,
headers: )
在Alamofire中调用函数的方式,其实是链式相应的方式,因为调用它的方法相当于是一个接一个的调用,比如说如下所示
Alamofire.request(url!, method: .get,parameters:["name":"zhangsan"],headers:["User-Agent":"iPhone"]).responseJSON { (response) in
//result.value就是反序列化完成的字典或者数组
print(response.result.value)
//如果有错误就是通过result.error来获取
print(response.result.error)
//判断是否成功
print(response.result.isSuccess)
//判断是否失败
print(response.result.isFailure)
}.responseString { (response) in
/**此处是输出字符串的响应的结果,也就是说这里其实就相当于在AFN中,我们想把AFN不要做反序列化先,
先转化成字符串格式,方便我们查看返回的数据,是什么类型的*/
print(response.result.value)
}
print("加载请求")
}
通过进入头文件观察,这些返回值都是Self,Self代表的应该就是当前类的实例。
public func responseJSON(
queue: DispatchQueue? = nil,
options: JSONSerialization.ReadingOptions = .allowFragments,
completionHandler: @escaping (DataResponse<Any>) -> Void)
-> Self
总结来说就是如果我们使用了responseJSON,就不要再去指定相应的数据格式了比如说text/plain,还有就是如果服务器返回的数据类型不正确的话,我们就用responseString查看返回的JSON字符串,还有就是不再提供网络的指示器了,需要我们自己进行添加。还有就是支持链式的响应。最后一点就是上传文件的方法没有AFN方便