使用 alamofire 2.0 和 Swift 2.0 的 POST 请求
Posted
技术标签:
【中文标题】使用 alamofire 2.0 和 Swift 2.0 的 POST 请求【英文标题】:POST request using alamofire 2.0 and Swift 2.0 【发布时间】:2015-09-16 06:33:46 【问题描述】:我尝试创建一个使用 Alamofire 发送 POST 请求的基本函数。
@IBAction func createBasicAccount(sender: AnyObject)
var firstNameToSend = firstName.text
var lastNameToSend = lastName.text
var mailAddressToSend = mailAddress.text
var passwordToSend = password.text
var parametersToSend = [
"firstName": firstNameToSend,
"lastName": lastNameToSend,
"mailAddress": mailAddressToSend,
"password": passwordToSend
]
print("Account creation")
Alamofire.request(.POST, postEndpoint, parameters: parametersToSend, encoding: .JSON)
但是Alamofire.request
不会编译并且编译器会返回:
Cannot convert value of type '[String : String?]' to expected argument type '[String : AnyObject]?'
我试过了:
Alamofire.request(.POST, postEndpoint, parameters: parametersToSend as! AnyObject as? [String : AnyObject], encoding: .JSON)
但是失败了:
Account creation
Could not cast value of type 'Swift.Dictionary<Swift.String, Swift.Optional<Swift.String>>' (0x11fdb1038) to 'Swift.AnyObject' (0x12035b018).
我正在使用 Swift 2.0、Xcode 7.0 GM Seed、ios 8.4 和 Alamofire 2.0
【问题讨论】:
【参考方案1】:我认为这是一个可选类型问题。可以试试加吗!到您的变量,例如:
var parametersToSend = [
"firstName": firstNameToSend!,
"lastName": lastNameToSend!,
"mailAddress": mailAddressToSend!,
"password": passwordToSend!
]
【讨论】:
我太笨了...非常感谢! 非常感谢您节省了我的时间。 @VivienG 同样在这里 :(.【参考方案2】:这是 SWIFT 2.2 的最新 VERIOSN 代码,希望对您有所帮助.... 这是 SWIFT 2.2 版本的最新答案
试试这个对你有帮助....
参数:-
let params : Dictionary = ["YourKEY" : "YourVALUE"]
Post Request_Form:-
Alamofire.request(.POST,"Post Your Url HERE", parameters: params, encoding:.JSON).responseJSON
response in switch response.result
case .Success(let JSON):
// print("Success with JSON: \(JSON)")
//converting json into NSDictionary
let response = JSON as! NSDictionary
print(response)
var array = NSMutableArray!()
//converting respose form into NSMutableArray formate
array = response.valueForKey("countryList")as? NSMutableArray
//example if there is an id
// let userId = response.objectForKey("id")!
case .Failure(let error):
print("Request failed with error: \(error)")
【讨论】:
以上是关于使用 alamofire 2.0 和 Swift 2.0 的 POST 请求的主要内容,如果未能解决你的问题,请参考以下文章
Alamofire 奇怪的 JSON 前缀 - Swift 2.0
Alamofire 2.0 编译器问题 - Swift 2 / Xcode 7
转换为 swift 2.0 时,构建的 Alamofire 3 失败