【问题标题】:How can i use alamofire for post api [duplicate]我如何使用 alamofire 发布 api [重复]
【发布时间】:2017-09-05 01:21:33
【问题描述】:

我是 iOS 开发新手。我在 swift 3 中使用 alamofire 。我如何在alamofire 中发送帖子请求。它还在方法中提供了额外的参数。

提前致谢

【问题讨论】:

标签: ios swift afnetworking


【解决方案1】:

你可以使用 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
            }

    }
}

【讨论】:

    【解决方案2】:

    像下面这样使用并传递您要在服务器中发送的参数。最好使用它编写一个网络层类,然后它将在整个应用程序中可重用。

     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?)
                }
            }
    
        }
    

    【讨论】:

      【解决方案3】:

      首先,您将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)
                      }
      
                  }
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多