alamofire的两种请求方式有什么区别?
What is the difference between the two request methods of alamofire?
我只是在玩 Alamofire 框架并进行了几次 api 调用。但是我观察到 alamofire 中有两种请求方法:
public func request(method: Method, URLString: URLStringConvertible, parameters: [String: AnyObject]? = nil, encoding: ParameterEncoding = .URL, headers: [String: String]? = nil) -> Request{...}
和
public func request(URLRequest: URLRequestConvertible) -> Request {...}
我觉得这很有趣,因为第一个方法原型很详细而且很容易理解。但是第二个非常令人困惑,我知道它需要一个符合 Alamofire 定义的 URLRequestConvertible 协议的参数。
在第二个请求原型中,从未指定需要使用的 HTTP 方法(GET 或 POST),所以 alamofire 如何知道要使用哪个 HTTP 方法。有没有办法让 alamofire 知道在发出请求时使用哪种 http 方法。
此外,这两种方法(如果有的话)之间的其他显着差异是什么?首选哪一种?为什么?
谢谢。
不带 method
或 parameters
的 request
版本假设您手动准备了包含适当 HTTPMethod
的 NSMutableURLRequest
、HTTP headers(例如 Content-Type
等)和 HTTPBody
.
您通常不会使用 request
方法的这种再现(我们使用 Alamofire 正是为了让我们摆脱手动构建请求的杂草),但是当您必须构建一个请求时很有用Alamofire 无法以其他方式准备(例如 Sending json array via Alamofire)。
我只是在玩 Alamofire 框架并进行了几次 api 调用。但是我观察到 alamofire 中有两种请求方法:
public func request(method: Method, URLString: URLStringConvertible, parameters: [String: AnyObject]? = nil, encoding: ParameterEncoding = .URL, headers: [String: String]? = nil) -> Request{...}
和
public func request(URLRequest: URLRequestConvertible) -> Request {...}
我觉得这很有趣,因为第一个方法原型很详细而且很容易理解。但是第二个非常令人困惑,我知道它需要一个符合 Alamofire 定义的 URLRequestConvertible 协议的参数。
在第二个请求原型中,从未指定需要使用的 HTTP 方法(GET 或 POST),所以 alamofire 如何知道要使用哪个 HTTP 方法。有没有办法让 alamofire 知道在发出请求时使用哪种 http 方法。
此外,这两种方法(如果有的话)之间的其他显着差异是什么?首选哪一种?为什么?
谢谢。
不带 method
或 parameters
的 request
版本假设您手动准备了包含适当 HTTPMethod
的 NSMutableURLRequest
、HTTP headers(例如 Content-Type
等)和 HTTPBody
.
您通常不会使用 request
方法的这种再现(我们使用 Alamofire 正是为了让我们摆脱手动构建请求的杂草),但是当您必须构建一个请求时很有用Alamofire 无法以其他方式准备(例如 Sending json array via Alamofire)。