Alamofire имеет дело со специальными параметрами персонажей - PullRequest
0 голосов
/ 14 сентября 2018

ServiceKey, который я получил для API, смешан со сложными символами, такими как D% 2FFgugDIl1le9xiY7be1ge% 2B0Q% 3D% 3D

и когда я вставляю ключ в параметры alamofire и использую ключевое слово .get,мой ключ преобразуется, и когда URL-адрес действительно создается, он становится совершенно другим ключом.

есть ли способ решить эту проблему?

Это код, который я использую

Alamofire.request(BusURL, method: .get, parameters: ["cityCode": 25, "routeId":"DJB30300052ND", "ServiceKey": key])
        .responseString { response in
            print(" - API url: \(String(describing: response.request!))")   // original url request
            var statusCode = response.response?.statusCode

            switch response.result {
            case .success:
                print("status code is: \(String(describing: statusCode))")
                if let string = response.result.value {
                    print("XML: \(string)")
                }
            case .failure(let error):
                statusCode = error._code // statusCode private
                print("status code is: \(String(describing: statusCode))")
                print(error)
            }
    }

1 Ответ

0 голосов
/ 14 сентября 2018

Попробуйте ниже:

let params = ["cityCode": "25", "routeId":"DJB30300052ND"]
        var urlParams = params.flatMap({ (key, value) -> String in
            return "\(key)=\(value)"
        }).joined(separator: "&")

        let key = "&ServiceKey=D%2FFgugDIl1le9xiY7be1ge%2B0Q%3D%3D"
        urlParams.append(key)

        let url = "https://google.com?\(urlParams)"
        print("url\(url)")
        Alamofire.request(url, method: .get).validate().responseString(completionHandler: {response in
            switch response.result{
            case .success:
                let s = response.result.value ?? "Empty Result"
                print("response \(s)")
            case .failure:
                print("Call Failed")
                debugPrint(response)
            }
        })

вывод: https://google.com?cityCode=25&routeId=DJB30300052ND&ServiceKey=D%2FFgugDIl1le9xiY7be1ge%2B0Q%3D%3D

...