Я хочу, чтобы запрос POST использовал Alamofire 4.0, И, надеюсь, что мой параметр запроса передается на сервер в виде текста, а не JSON. Пожалуйста, помогите мне? Благодаря!Как сделать запрос POST использовать Alamofire 4.0 И параметр text не json
0
A
ответ
1
вы должны использовать .custom для кодирования параметров и создать свою собственную кодировку и добавить его в HTTP тело в ранее alamofire, но в Alamafire 4.0 вы должны продлить ParameterEncoding
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
}
}
вы можете найти пример кода здесь ->stack overflow thread
0
Try Как это
func API_getSubject(id:String) {
MBProgressHUD.showAdded(to: self.view, animated: true)
let param = ["idnumber" : id];
print("param == \(param)")
Alamofire.request(Config.BASE_URL + "subject_list", method: .post, parameters: param, encoding: JSONEncoding.default, headers: nil)
.responseJSON {
response in debugPrint(response) // prints detailed description of all response properties
//to get JSON return value
if let result = response.result.value {
let JSON = result as! NSDictionary
if JSON.value(forKey: "status") as! NSNumber == 1 {
self.ary_responce = (JSON["subjects"]! as! NSArray).mutableCopy() as! NSMutableArray
self.aTable.reloadData()
}
else{
self.Alert(msg: "\(JSON["message"]!)")
}
}
else{
if let error = response.result.error {
self.Alert(msg: error.localizedDescription)
}
}
DispatchQueue.main.async {
MBProgressHUD.hideAllHUDs(for: self.view, animated: true)
MBProgressHUD.hide(for: self.view, animated: true)
}
}
}
Я сказал параметр HTTPBody не ответ – Gigi