swiftyjson example alamofireobjectmapper swift post header afnetworking alamofire

swift - example - Cómo utilizar Alamofire con encabezados personalizados para solicitud POST



swiftyjson (3)

Aquí hay un ejemplo de cómo lo uso con encabezados personalizados:

var manager = Manager.sharedInstance // Specifying the Headers we need manager.session.configuration.HTTPAdditionalHeaders = [ "Content-Type": "application/x-www-form-urlencoded", "Accept": "application/vnd.lichess.v1+json", "X-Requested-With": "XMLHttpRequest", "User-Agent": "iMchess" ]

Ahora, cada vez que realiza una solicitud, usará los encabezados especificados.

Tu código refactorizado: recuerda import Alamofire

let aManager = Manager.sharedInstance manager.session.configuration.HTTPAdditionalHeaders = [ "Authorization": "Bearer /(accessToken)" ] let URL = url + "/server/rest/action" request(.POST, URL, encoding: .JSON) .responseJSON { (request, response, data, error) -> Void in println("REQUEST: /(request)") println("RESPONSE: /(response)") println("DATA: /(data)") println("ERROR: /(error)") }

Esta es una solicitud de firma de request(method: Method, URLString: URLStringConvertible>, parameters: [String : AnyObject]?, encoding: ParameterEncoding)

Como puede ver, no tiene que pasar un NSURL, solo la cadena de URL, Alamofire se ocupa del resto.

Implementé una solicitud POST con Alamofire con un encabezado personalizado, porque trabajamos con OAuth2 y tenemos que enviar un token de acceso en cada solicitud dentro del encabezado. En este caso, tengo que usar un encabezado personalizado.

El valor del token de acceso para el campo del encabezado HTTP La Authorization no funciona para mí. El servidor genera un error porque la información del encabezado para OAuth con el token de acceso no está disponible.

Pero, ¿cuál es el error en mi código?

Aquí está mi código actual:

let URL = NSURL(string: url + "/server/rest/action") var mutableURLRequest = NSMutableURLRequest(URL: URL!) mutableURLRequest.setValue("Bearer /(accessToken)", forHTTPHeaderField: "Authorization") //this method does not work anymore because it returns an error in the response //Alamofire.Manager.sharedInstance.session.configuration.HTTPAdditionalHeaders = ["Authorization": "Bearer /(accessToken)"] Alamofire.Manager.sharedInstance .request(.POST, mutableURLRequest, parameters: parameters, encoding: .JSON) .validate() .responseJSON { (request, response, data, error) -> Void in NSLog("REQUEST: /(request)") NSLog("RESPONSE: /(response)") NSLog("DATA: /(data)") NSLog("ERROR: /(error)") }


Hay una solución simple para enviar parámetros y encabezado con una única solicitud Alamofire para Swift 3 y Alamofire 4.0

let url = "myURL" let parameters: Parameters = [ "param1": "hello", "param2": "world" ] let headers = [ "x-access-token": "myToken", ] Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers).responseJSON { (response) in if response.result.isFailure { //In case of failure }else { //in case of success } }


let headers: HTTPHeaders = [ "Cookie": UserDefaultsUtil.getString(param: Constants.COOKIE), "Accept": "application/json" ] Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers) .responseObject { (response: DataResponse<Any>) in if response.result.isSuccess { } else { } }