2017-04-10 8 views
-8

iOS開発の新機能です。 swift 3alamofireを使用しています。 alamofireで投稿リクエストを送信するにはどうすればいいですか?また、メソッド内に余分な引数を与えます。ポストAPIにalamofireを使用するには

あなたのプロジェクトにalmofireライブラリを追加し、すべての事前

+1

alamofireマネージャを使用することができます[これを?](http://stackoverflow.com/questions/27855319/post-request-with-a-simple-ストリング・イン・ボディ・アラモファイア) – Barak

答えて

1

まずにおけるおかげで、その後、メソッドの下に、あなたのViewControllerにalmofireインポートするには、あなたのボタンアクションに適用されます。

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

あなたがに見たことが

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 
      } 

    } 
} 
関連する問題