'Convert URL Request from Android to IOS

I need to make a request to get a token.

If my data isn't correct, i get right answer with "Wrong data"

But if my data is correct, I get an answer:

responseSerializationFailed(reason: Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength).

But it works on Android version.

Request Code for Android:

 @FormUrlEncoded
    @POST("api/v1/authorization/login")
    fun login(
        @Field("username") username: String,
        @Field("password") password: String,
        @Field("code") code: String
    ): Single<Response<Void>>

API:

{
    "name": "Get token",
    "request": {
        "method": "POST",
        "header": [],
        "url": {
            "raw": "http://192.168.9.41/api/v1/authorization/login?username=%2B79992402979&password=Qwerty%244&code=4242",
            "protocol": "http",
            "host": [
                "192",
                "168",
                "9",
                "41"
            ],
            "path": [
                "api",
                "v1",
                "authorization",
                "login"
            ],
            "query": [
                {
                    "key": "username",
                    "value": "%2B79992402979"
                },
                {
                    "key": "password",
                    "value": "Qwerty%244"
                },
                {
                    "key": "code",
                    "value": "4242"
                }
            ]
        }
    },
    "response": []
}

My Swift code:

func confirmLoginWithCode(username: String, password: String, code: String, completion: @escaping () -> Void) {
    let parameters: Parameters = [
        "username": username,
        "password": password,
        "code": code
    ]
    let url = "\(self.baseUrl)/api/v1/authorization/login"
    let authRequest = AF.request(url,
                                 method: .post,
                                 parameters: parameters,
                                 encoding: URLEncoding(destination: .queryString))
    authRequest.responseString { (response) in
        switch(response.result) {
        case .success(let value):
            let responseArr = value.components(separatedBy: "\u{0022}")
            print(responseArr, "success")
        case .failure(let error):
            print("\(error) check error")
        }
        completion()
    }
}


Solution 1:[1]

Now I realize that my question is pretty useless for the site, but here is my solution: As it turned out, I just had to look in Header

func confirmLoginWithCode(username: String, password: String, code: String, completion: @escaping () -> Void) {
            let parameters: Parameters = [
                "username": username,
                "password": password,
                "code": code
            ]
            let url = "\(self.baseUrl)/api/v1/authorization/login"
            let authRequest = AF.request(url,
                                         method: .post,
                                         parameters: parameters,
                                         encoding: URLEncoding(destination: .queryString))
            authRequest.responseString { (response) in
                switch(response.result) {
                case .success(let value):
                    let responseArr = value.components(separatedBy: "\u{0022}")
                    if responseArr[31] == "Wrong verification code!" {
                        self.confirmLoginStatus = .incorrectCode
                    }
                case .failure(let error):
                    if let receivedHeaders = response.response?.headers.value(for: "Authorization") {
                        let token = receivedHeaders.replacingOccurrences(of: "Bearer ", with: "")
                        self.userSettings.token = token
                        self.confirmLoginStatus = .success
                    } else {
                        self.confirmLoginStatus = .connectionError
                    }
                    self.errorStatus = error.errorDescription ?? "some error"
                }
                completion()
            }
        }

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Orlov.iosdev