alamofire的两种请求方法有什么区别?

时间:2015-07-20 17:03:58

标签: ios swift 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方法。

这两种方法(如果有的话)之间的其他显着差异是什么?哪一种是优先的?为什么?

谢谢。

1 个答案:

答案 0 :(得分:1)

request没有methodparameters的演绎假设您手动准备了NSMutableURLRequest,其中包含相应的HTTPMethod,HTTP标头(例如Content-Type等)和HTTPBody

您通常不会使用request方法的这种演绎(我们使用Alamofire正是为了让我们摆脱手动构建请求的杂草),但是当您必须构建Alamofire无法解决的请求时,它非常有用否则准备(例如Sending json array via Alamofire)。