Moya sets timeout and request headers

   //TODO: timeout setting

        let requestTimeoutClosure = { (endpoint:Endpoint, done: @escaping MoyaProvider<LoginApi>.RequestResultClosure) in

            do{

                var request = try endpoint.urlRequest()

                request.timeoutInterval = 20 //Set request timeout

                done(.success(request))

            }catch{

                return

            }

        }

        //TODO: Set request header information

//        let provider = MoyaProvider<LoginApi>(requestClosure: requestTimeoutClosure)

        let myEndpointClosure = {(target:LoginApi) -> Endpoint in

            

            let url = target.baseURL.appendingPathComponent(target.path).absoluteString

            let endpoint = Endpoint(

                url: url, sampleResponseClosure: {.networkResponse(200,target.sampleData)}, method: target.method, task: target.task, httpHeaderFields: target.headers

            )

            

            return endpoint.adding(newHTTPHeaderFields:  [

                "Content-Type" : "application/x-www-form-urlencoded",

                "ECP-COOKIE" : ""

                ])

                    }

   //Initialize provider

        let provider = MoyaProvider<LoginApi>(endpointClosure: myEndpointClosure, requestClosure: requestTimeoutClosure)

 

In fact, the request header can also be written directly in the headers of creating moya related classes, as follows:

    public var headers: [String : String]? {

              return ["Accept":"application/json","Content-Type":"application/json; charset=utf-8","x-client-system":"ios","x-client-systemVersion":UIDevice.current.systemVersion,"x-client-appVersion":app_version]

    }

Guess you like

Origin blog.csdn.net/ForeverMyheart/article/details/97245488