Alamofire Accept and Content-Type JSON Alamofire Accept and Content-Type JSON json json

Alamofire Accept and Content-Type JSON


I ended up using URLRequestConvertible https://github.com/Alamofire/Alamofire#urlrequestconvertible

enum Router: URLRequestConvertible {    static let baseUrlString = "someUrl"    case Get(url: String)    var URLRequest: NSMutableURLRequest {        let path: String = {            switch self {            case .Get(let url):                return "/\(url)"            }        }()        let URL = NSURL(string: Router.baseUrlString)!        let URLRequest = NSMutableURLRequest(URL:                           URL.URLByAppendingPathComponent(path))        // set header fields        URLRequest.setValue("application/json",                            forHTTPHeaderField: "Content-Type")        URLRequest.setValue("application/json",                            forHTTPHeaderField: "Accept")        return URLRequest.0    }}

And then just:

Alamofire.request(Router.Get(url: ""))    .validate()    .responseJSON { (req, res, json, error) in        if (error != nil) {            NSLog("Error: \(error)")            println(req)            println(res)        } else {            NSLog("Success")            var json = JSON(json!)            NSLog("\(json)")        }}

Another way to do it is to specify it for the whole session, check @David's comment above:

Alamofire.Manager.sharedInstance.session.configuration         .HTTPAdditionalHeaders?.updateValue("application/json",                                             forKey: "Accept")


Example directly from Alamofire github page:

Alamofire.request(.GET, "http://httpbin.org/get", parameters: ["foo": "bar"])         .validate(statusCode: 200..<300)         .validate(contentType: ["application/json"])         .response { (_, _, _, error) in                  println(error)         }

In your case add what you want:

Alamofire.request(.GET, "http://httpbin.org/get", parameters: ["foo": "bar"])         .validate(statusCode: 200..<300)         .validate(contentType: ["application/json"])         .validate(Accept: ["application/json"])         .response { (_, _, _, error) in                  println(error)         }


Simple way to use get method with query map and response type json

var parameters: [String:Any] = [            "id": "3"          ]var headers: HTTPHeaders = [            "Content-Type":"application/json",            "Accept": "application/json"        ]Alamofire.request(url, method: .get, parameters: parameters,encoding: URLEncoding.queryString,headers:headers).validate(statusCode: 200..<300)            .responseData { response in                     switch response.result {                case .success(let value):                  case .failure(let error):                    }