let header = [
"Content-Type":"application/json",
"X-Source":"iOS",
"Authorization":token]
let strURL = "ValidURL"
let manager = AFHTTPSessionManager()
let serializer = AFHTTPRequestSerializer()
for (_,dict) in header.enumerated() {
serializer.setValue("\(dict.value)", forHTTPHeaderField: "\(dict.key)")
}
manager.requestSerializer = serializer
let req = serializer.request(withMethod: "POST", urlString: strURL, parameters: params, error: nil)
manager.dataTask(with: req as URLRequest) { (response, data, error) in
print(error)
print(response)
print(data)
}
//No response from this method
Also, I tried:
var request = URLRequest(url: URL(string: strURL)!)
request.httpMethod = "POST"
for (_,dict) in header.enumerated() {
request.setValue("\(dict.value)", forHTTPHeaderField: "\(dict.key)")
}
request.httpBody = try! JSONSerialization.data(withJSONObject: params, options: .prettyPrinted)
manager.dataTask(with: request) { (response, data, error) in
print(error)
print(response)
print(data)
}
Even I have tried:
manager.post(strURL, parameters: params, progress: nil, success: { (sessionTask, respose) in
if let dict = respose as? Dictionary<String,Any> {
print(dict)
} else {
}
}) { (task, error) in
print(error)
}
//It Give me: failed: bad request (400)
There are two problems here
When you use a dataTask method, you get back a task object. You need to call resume()
on it when you want the request to be sent.
Your errors indicate that your JSON body is incorrect. That is in your params
object which probably does not match what the service is expecting.