Reputation: 14904
I would like to add a few POST Parameters to a Alamofire Request using the CRUD Example as Base. I am unable to send my Parameters.
enum Router: URLRequestConvertible {
static var baseURLString: String = NSUserDefaults.standardUserDefaults().objectForKey("url") as String!
case GetForms()
case Login(String, String)
var method: Alamofire.Method {
switch self {
case .GetForms:
return .GET
case .Login:
return .POST
default:
return .GET
}
}
var path: String {
switch self {
case .GetForms():
return "getforms"
case .Login(let email, let password):
return "login"
default:
return ""
}
}
var URLRequest: NSURLRequest {
let URL = NSURL(string: Router.baseURLString)!
let mutableURLRequest = NSMutableURLRequest(URL: URL.URLByAppendingPathComponent(path))
switch self {
case .GetForms():
let token: String = NSUserDefaults.standardUserDefaults().objectForKey("apikey") as String!
mutableURLRequest.HTTPMethod = method.rawValue
mutableURLRequest.setValue(token, forHTTPHeaderField: "Authorization")
return mutableURLRequest
case .Login(_, let parameters):
// HERE I WANT TO ADD THE 2 POST Paramers from the Login Function
return mutableURLRequest
default:
return mutableURLRequest
}
}
}
But this is not working. Ill tried to change to example Code, but i dont really understand how to add simple 2 Post Parameters. It should be the same like when i use it as a simple request. Like:
Alamofire.request(.GET, "http://httpbin.org/get", parameters: ["email": "admin", "password": "password"])
.response { (_, _, _, error) in
println(error)
}
Any help would be greatly apprechiated!
Upvotes: 2
Views: 1051
Reputation: 93296
You can apply parameters to your mutableURLRequest
by calling the encode
method on an Alamofire ParameterEncoding
instance. If it's a standard POST request, you'll want to use the URL
case:
switch self {
case .GetForms():
// ...
case .Login(let email, let password):
// do any URL request setup first
mutableURLRequest.HTTPMethod = method.rawValue
// set up parameters
let parameters = ["email": email, "password": password]
// return first element of tuple from encode
return ParameterEncoding.URL.encode(mutableURLRequest, parameters).0
default:
return mutableURLRequest
}
Upvotes: 4