Как получить данные с сервера Alamofire Swift с помощью заголовка - PullRequest
0 голосов
/ 28 декабря 2018

Когда я хочу получить данные с сервера, используя Alamofire, это показывает мне какую-то ошибку. Я хочу получить данные с сервера, используя заголовок в моем заголовке, я передаю id и token.

@IBAction func profile(_ sender: Any) {

    print(AuthService.instance.authToken)
    print(AuthService.instance.userEmail)
    let BEARER_HEADER2 = [
        "id":AuthService.instance.userEmail,
        "Authorization":AuthService.instance.authToken

        //"Content-Type": "application/json; charset=utf-8"
    ]
    print(BEARER_HEADER2)

    Alamofire.request("http://fiveorzero.ml/api/v1/user/user/profile",method: .get, parameters: nil,encoding:URLEncoding.default, headers: BEARER_HEADER2).responseJSON { response in
        switch response.result {
        case .success(let value):
            let swiftyJson = JSON(value)
            print(swiftyJson)
            print("Khabbab")

        case .failure(let error):
            debugPrint(response.result.error as Any)
            print ("error: \(error)")
        }
    }

}

$ 2y $ 10 $ CUWgHVpbt6oPUdBo7weofucUniXw9JZoIeWZ1hZiwAfymZASoNWyS 128 [ "ID": "128", "Авторизация": "$ 2y $ 10 $ CUWgHVpbt6oPUdBo7weofucUniXw9JZoIeWZ1hZiwAfymZASoNWyS"] Дополнительно (Alamofire.AFError.responseSerializationFailed (Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed (Error Domain = NSCocoaErrorDomainКод = 3840 «Недопустимое значение для символа 0.» UserInfo = {NSDebugDescription = Недопустимое значение для символа 0.}))) error: responseSerializationFailed (Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed (Ошибка Домена = NSCocoaErrorDomain Code = 3840 в символе около 3840 ")0. "UserInfo = {NSDebugDescription = Недопустимое значение вокруг символа 0.}))

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Вы можете использовать это для создания заголовка

let id = "your id"
let Authorization = "your ascess token"
let credentialData = "\(id):\(Authorization)".data(using: String.Encoding.utf8)!
let base64Credentials = credentialData.base64EncodedString(options: [])
    let headers = ["Authorization": "Basic \(base64Credentials)"]

Alamofire.request("your url" , method : .post, parameters: parameters,
                      headers: headers)
        .responseJSON { response in
        // do whatever you want here
        switch response.result {
        case .failure(let error): break
        // self.popupp(elrtdata : "Please try again latter.")
        case .success(let responseObject): } }
0 голосов
/ 28 декабря 2018

Попробуйте вот так

 Alamofire.request(URL, method: .get, encoding: JSONEncoding.default, headers: headers).responseJSON
                {
                    response in
                    switch response.result
                    {
                    case .success(let value):
                        completionHandler(value as? Array, nil)//completionHandler(value as? NSDictionary, nil)
                    print(value)
                    case .failure(let error):
                        completionHandler(nil,(error as NSError?)!)
                    }
            }
...