iOS http POST 使用 Alamofire
Posted
技术标签:
【中文标题】iOS http POST 使用 Alamofire【英文标题】:iOS http POST using Alamofire 【发布时间】:2015-10-31 16:35:37 【问题描述】:我需要一些帮助,使用 Alamofire 通过 Twilio 的 API 使用用户名/密码对网页进行 POST。
我之前使用过 GitHub 的 SwiftRequest,但它不支持 Swift 2.0。
我使用的代码(使用 SwiftRequest)是:
var data = [
"To" : mobileInput.text as String!,
"From" : twiliosMSFrom,
"Body" : String(code) as String
]
var swiftRequest = SwiftRequest()
swiftRequest.post("https://api.twilio.com/2010-04-01/Accounts/\(twilioUsername)/Messages",
auth: ["username" : twilioUsername, "password" : twilioPassword],
data: data,
callback: err, response, body in
if err == nil
println("Success: \(response)")
else
println("Error: \(err)")
)
如何将其翻译为使用 Alamofire?
我已尝试寻找解决方案,但找不到任何解决方案。
谁能帮帮我?
【问题讨论】:
【参考方案1】:试试这样的:
Alamofire.request(.POST, "https://api.twilio.com/2010-04-01/Accounts/\(twilioUsername)/Messages", parameters: ["username": twilioUsername, "password" : twilioPassword])
.responseJSON response in
print(response.request)
print(response.response)
print(response.result)
if let JSON = response.result.value
print("Did receive JSON data: \(JSON)")
else
print("JSON data is nil.")
你一定要查看他们的 github 页面 - https://github.com/Alamofire/Alamofire
【讨论】:
返回成功,但您的答案不包括数据部分。如何确保也发送数据? 很抱歉不够精确。我的意思是必须在 POST 中发送数据部分才能获得结果中的必要数据。我已经测试了你的代码,它响应的 JSON 数据是 nil,正如预期的那样。【参考方案2】:我想通了。
使用 Alamofire 的解决方案:
let data = [
"To" : mobileInput.text as String!,
"From" : twilioSMSFrom,
"Body" : String(code) as String
]
Alamofire.request(.POST, "https://\(twilioUsername):\(twilioPassword)@api.twilio.com/2010-04-01/Accounts/\(twilioUsername)/Messages", parameters: data)
.responseJSON response in
print(response.request)
print(response.response)
print(response.result)
【讨论】:
【参考方案3】:这是 SWIFT 2.2 VERSION 的最新答案 试试这个对你有帮助....
参数:-
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)")
【讨论】:
以上是关于iOS http POST 使用 Alamofire的主要内容,如果未能解决你的问题,请参考以下文章
PhoneGap Ionic 项目未在 iOS 设备上执行 $http.post
iOS使用CocoaHttpServer搭建本地http服务,并实现简单的GET与POST请求
iOS开发 GET、POST请求方法(NSURLConnection篇)