ArisRS
ArisRS

Reputation: 1394

Alamofire set request body with Data

In objC I do:

NSData *postData = ...
NSMutableURLRequest *request = ...
[request setHTTPBody:postData];

How to do in Swift Alamofire?

Alamofire.request(url, method: .post, parameters: nil, encoding: URLEncoding.default, headers: headers)
    request.validate().responseJSON {
...
}

Upvotes: 0

Views: 426

Answers (2)

Onkar Borse
Onkar Borse

Reputation: 70

Use Alamofire AND Swifty Json Library for suitable api call and json parsing

Swifty Json https://github.com/SwiftyJSON/SwiftyJSON

Alamofire https://github.com/Alamofire/Alamofire

First create your parameter list in [String: Any] type

func CallAPI(){

    let parameters: [String: Any] = [
    "Username": "Admin",
    "Password": "123456",
    "Language_Code": "EN"]


    Alamofire.request("Your API Url", method: .post, parameters: parameters, encoding: JSONEncoding.default)
    .responseJSON { response in

    if((response.result.value) != nil) {

    let ResultJson = JSON(response.result.value!)

    print("ResultJson==",ResultJson)
    }
 }
}

Upvotes: 0

Shehata Gamal
Shehata Gamal

Reputation: 100523

Alamfire accepts [String:Any]

 do {
     let params  = try JSONSerialization.jsonObject(with: data, options: []) as! [String:Any]
     Alamofire.request(url, method: .post, parameters:params, encoding: JSONEncoding.default, headers: headers)
    request.validate().responseJSON {
     ...
    }
  } 
  catch {
      print(error)
  }

Swift 4.2

Alamofire.request(url, method: .post, parameters: [:], encoding: "test", headers: [:])  

extension String: ParameterEncoding {

    public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
        var request = try urlRequest.asURLRequest()
        request.httpBody = data(using: .utf8, allowLossyConversion: false)
        return request
    }

}

Upvotes: 2

Related Questions