Search code examples
swiftrequestalamofire

Alamofire Swift convert


Hi I want to make a request to API, but when send, console show me

invalidURL

 Alamofire.request("https://.../api/v1.8/set/order/?address=\(address)&email=\(email)&information=\(information)&name=\(name)&order=\(parameters)&password=\(password)&paymentType=\(paymentType)&phone=\(phone)&token=\(token)&userID=\(userID)&wihtRegistration=\(wihtRegistration)").validate(statusCode: 200..<300)
        .responseJSON { response in
        switch response.result
        {
        case .failure(let error):
            print(error)

        case .success(let value):
             print(value)

        print("Request: \(response.request)")

    }
}

How can I convert in Alamofire?


Solution

  • I have created this custom method. Call this by passing required parameter:-

    Without JSON Encoding

    func requestWithoutJSONEncoding(_ method: HTTPMethod
        , _ URLString: String
        , parameters: [String : AnyObject]? = [:]
        , headers: [String : String]? = [:]
        , completion:@escaping (Any?) -> Void
        , failure: @escaping (Error?) -> Void) {
    
        Alamofire.request(URLString, method: method, parameters: parameters, headers: headers)
            .responseJSON { response in
    
                switch response.result {
                case .success:
                    completion(response.result.value!)
                case .failure(let error):
                    failure(error)
                }
        }
    }
    

    With JSON Encoding

    func request(_ method: HTTPMethod
        , _ URLString: String
        , parameters: [String : AnyObject]? = [:]
        , headers: [String : String]? = [:]
        , completion:@escaping (Any?) -> Void
        , failure: @escaping (Error?) -> Void) {
    
        Alamofire.request(URLString, method: method, parameters: parameters, encoding: JSONEncoding.default, headers: headers)
            .responseJSON { response in
    
                switch response.result {
                case .success:
                    completion(response.result.value!)
                case .failure(let error):
                    failure(error)
                }
        }
    }