Alamofire устанавливает тело запроса с данными - PullRequest
0 голосов
/ 24 декабря 2018

В objC я делаю:

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

Как это сделать в Swift Alamofire?

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

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Используйте библиотеку Alamofire AND Swifty Json для подходящего вызова API и анализа JSON

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

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

Сначала создайте список параметров в [Строка: Любая] тип

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)
    }
 }
}
0 голосов
/ 24 декабря 2018

Alamfire принимает [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
    }

}
...