带有 CRUD/Rest 的 Alamofire POST 参数
Posted
技术标签:
【中文标题】带有 CRUD/Rest 的 Alamofire POST 参数【英文标题】:Alamofire POST Parameter with CRUD / Rest 【发布时间】:2014-12-20 00:28:10 【问题描述】:我想将一些 POST 参数添加到使用 CRUD 示例作为基础的 Alamofire 请求中。我无法发送我的参数。
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
但这不起作用。生病尝试更改为示例代码,但我真的不明白如何添加简单的 2 Post 参数。当我将它用作简单请求时,它应该是一样的。喜欢:
Alamofire.request(.GET, "http://httpbin.org/get", parameters: ["email": "admin", "password": "password"])
.response (_, _, _, error) in
println(error)
任何帮助将不胜感激!
【问题讨论】:
【参考方案1】:您可以通过在 Alamofire ParameterEncoding
实例上调用 encode
方法将参数应用于您的 mutableURLRequest
。如果是标准的 POST 请求,您需要使用 URL
案例:
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
【讨论】:
以上是关于带有 CRUD/Rest 的 Alamofire POST 参数的主要内容,如果未能解决你的问题,请参考以下文章