我只是玩Alamofire框架并且几乎没有api调用。但是我观察到alamofire中有两种请求方法
Alamofire的responseJSON和responseData之间有什么区别。
public func responseData(
queue: DispatchQueue? = nil,
completionHandler: @escaping (DataResponse<Data>) -> Void)
-> Self
{
return response(
queue: queue,
responseSerializer: DataRequest.dataResponseSerializer(),
completionHandler: completionHandler
)
}
public func responseJSON(
queue: DispatchQueue? = nil,
options: JSONSerialization.ReadingOptions = .allowFragments,
completionHandler: @escaping (DataResponse<Any>) -> Void)
-> Self
{
return response(
queue: queue,
responseSerializer: DataRequest.jsonResponseSerializer(options: options),
completionHandler: completionHandler
)
}
答案 0 :(得分:4)
responseJSON
会将JSON对象传递给它完成。即它将是具有String
键和JSON兼容值的字典或数组。
responseData
会将Data
对象传递给其完成。这可能包含JSON数据,可以将其反序列化为JSON对象,但也可以包含任何其他类型的数据。图像数据,HTML,视频数据等......
如果您知道从端点获取JSON,请使用responseJSON
调用。