我只是玩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方法。
这两种方法(如果有的话)之间的其他显着差异是什么?哪一种是优先的?为什么?
谢谢。
答案 0 :(得分:1)
request
没有method
或parameters
的演绎假设您手动准备了NSMutableURLRequest
,其中包含相应的HTTPMethod
,HTTP标头(例如Content-Type
等)和HTTPBody
。
您通常不会使用request
方法的这种演绎(我们使用Alamofire正是为了让我们摆脱手动构建请求的杂草),但是当您必须构建Alamofire无法解决的请求时,它非常有用否则准备(例如Sending json array via Alamofire)。