2017-04-10 38 views
-8

我是iOS開發新手。我在swift 3中使用alamofire。我如何發送alamofire的郵寄請求。它也提供了額外的方法。我如何使用alamofire發佈api

在此先感謝

+1

你有沒有在看[本?](http://stackoverflow.com/questions/27855319/post-request-with-a-simple-字符串在體與 - alamofire) – Barak

回答

1

首先你添加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) 
       } 

      } 
     } 
0

使用像波紋管,並傳遞您想要在服務器中發送的參數。最好使用它編寫一個網絡層類,然後在整個應用程序中重用。

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

    } 
0

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

    } 
}