Moya はタイムアウトとリクエスト ヘッダーを設定します

   //TODO:タイムアウト設定

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

            { する

                var request = endpoint.urlRequest()を試す

                request.timeoutInterval = 20 //リクエストのタイムアウトを設定

                done(.success(リクエスト))

            }キャッチ{

                戻る

            }

        }

        //TODO: リクエストヘッダー情報を設定

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

        let myEndpointClosure = {(target:LoginApi) -> エンドポイント

            

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

            letエンドポイント = エンドポイント(

                URL: URL、sampleResponseClosure: {.networkResponse(200,target.sampleData)}、メソッド: target.method、タスク: target.task、httpHeaderFields: target.headers

            )

            

            return endpoint.adding(newHTTPHeaderFields: [

                「コンテンツ タイプ」: 「application/x-www-form-urlencoded」,

                "ECP-クッキー" : ""

                ]))

                    }

   //プロバイダを初期化

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

 

実際、以下のようにmoya関連のクラスを作成する際のヘッダにリクエストヘッダを直接書くこともできます。

    public var headers: [文字列: 文字列]? {

              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]

    }

おすすめ

転載: blog.csdn.net/ForeverMyheart/article/details/97245488