美文网首页
Alamofire(2)

Alamofire(2)

作者: 忆痕无殇 | 来源:发表于2019-08-18 22:23 被阅读0次

1:Request请求

public func request(
    _ url: URLConvertible,
    method: HTTPMethod = .get,
    parameters: Parameters? = nil,
    encoding: ParameterEncoding = URLEncoding.default,
    headers: HTTPHeaders? = nil)
    -> DataRequest
{
    print("打印方法 \(method)")
    print("helelo")
    return SessionManager.default.request(
        url,
        method: method,
        parameters: parameters,
        encoding: encoding,
        headers: headers
    )
}
/// Creates a `DataRequest` using the default `SessionManager` to retrieve the contents of the specified `url`,
/// `method`, `parameters`, `encoding` and `headers`.
///
/// - parameter url:        The URL.
/// - parameter method:     The HTTP method. `.get` by default.
/// - parameter parameters: The parameters. `nil` by default.
/// - parameter encoding:   The parameter encoding. `URLEncoding.default` by default.
/// - parameter headers:    The HTTP headers. `nil` by default.
///

默认请求是getHTTPMethod是个枚举值。

public enum HTTPMethod: String {
    case options = "OPTIONS"
    case get     = "GET"
    case head    = "HEAD"
    case post    = "POST"
    case put     = "PUT"
    case patch   = "PATCH"
    case delete  = "DELETE"
    case trace   = "TRACE"
    case connect = "CONNECT"
}

print("打印方法 \(method)")的结果是get
po method.rawvalue 获取到枚举值的值是什么GET
return SessionManager.default.request是个单利。

 public static let `default`: SessionManager = {
        let configuration = URLSessionConfiguration.default
        configuration.httpAdditionalHeaders = SessionManager.defaultHTTPHeaders

        return SessionManager(configuration: configuration)
    }()

SessionManager.defaultHTTPHeaders设置header信息,原因是为了保证请求的安全过滤垃圾请求。通过标示一些特殊的标记。返回SessionManager(configuration: configuration)

 private func commonInit(serverTrustPolicyManager: ServerTrustPolicyManager?) {
        session.serverTrustPolicyManager = serverTrustPolicyManager

        delegate.sessionManager = self

        delegate.sessionDidFinishEventsForBackgroundURLSession = { [weak self] session in
            guard let strongSelf = self else { return }
            DispatchQueue.main.async { strongSelf.backgroundCompletionHandler?() }
        }//后台下载事件回传。
    }

在这里做了代理移交。delegate.sessionManager = self。依赖减少,事件回传。
注。1;po NSHomeDirectory()输出沙盒路径。*
2;遇到不会的去githubIssues
*3;SessionManager.default不能直接使用,要创建自己的manager

相关文章

网友评论

      本文标题:Alamofire(2)

      本文链接:https://www.haomeiwen.com/subject/xwvdsctx.html