【发布时间】:2017-09-05 01:21:33
【问题描述】:
我是 iOS 开发新手。我在 swift 3 中使用 alamofire 。我如何在alamofire 中发送帖子请求。它还在方法中提供了额外的参数。
提前致谢
【问题讨论】:
-
你看过this?
标签: ios swift afnetworking
我是 iOS 开发新手。我在 swift 3 中使用 alamofire 。我如何在alamofire 中发送帖子请求。它还在方法中提供了额外的参数。
提前致谢
【问题讨论】:
标签: ios swift afnetworking
你可以使用 alamofire 管理器
var alamoFireManager = Alamofire.SessionManager
let request = URLRequest(url:_yourULR)
request.HTTPMethod = requestMethod.rawValue
request.timeoutInterval = //set yours
request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
request.addValue("gzip", forHTTPHeaderField: "Accept-Encoding")
request.HTTPBody = "you_bodydataSTring".dataUsingEncoding(String.Ecoding.utf8)
alamoFireManager.request(request)
.validate()
.responseString { (response) -> Void in
let datastring = NSString(data:response.data!, encoding: String.Ecoding.utf8)
switch response.result {
case .Success:
if response.response?.statusCode == 200 {
//code for success
}else{
//others
}
case .Failure(let error):
//request failed
}
}
}
【讨论】:
像下面这样使用并传递您要在服务器中发送的参数。最好使用它编写一个网络层类,然后它将在整个应用程序中可重用。
static func serverRequest(urlString: URL?, Parameter:NSDictionary?, completion: @escaping (_ serverResponse: AnyObject?,_ error:NSError?)->()){
// let parameters: Parameters = ["foo": "bar"]
//let headers = ["Authorization": "123456"]
Alamofire.request(urlString!, parameters:nil, headers: nil).responseJSON { response in
if(response.result.value != nil){
let serverResponse = JSON(response.result.value!)
//print("Array value is \(serverResponse.arrayValue)")
completion(serverResponse as AnyObject?, nil)
}
else{
completion(nil, response.result.error as NSError?)
}
}
}
【讨论】:
首先,您将almofire 库添加到您的项目中,然后将 almofire 导入您的 ViewController,然后在您的按钮操作中应用以下方法。
func webServiceLogin(isFbLogin:Bool,email:String,password:String)
{
var parameters:[String:String]?
parameters = ["hash":email as String,"key":password ]
Alamofire.request("your url", method: .post, parameters: parameters,encoding: URLEncoding.default, headers: nil).responseJSON {
response in
hideHud(self.view)
switch response.result {
case .success:
if let dictSuccess:NSDictionary = response.value as! NSDictionary?
{
}
break
case .failure(let error):
Alert.showAlertWithTitle(strTitle: appTitle, strMessage: error.localizedDescription, onView: self)
print(response)
print(error)
}
}
}
【讨论】: