I am trying to send image in API without alamonfir, also without converting into string.
Below is my code
func postRequest(username: String, password: String, completion: @escaping ([String: Any]?, Error?) -> Void) {
//func abc() {
//var username = "[email protected]"
//var password = "password"
//declare parameter as a dictionary which contains string as key and value combination.
let parameters = ["first_name":name,"last_name":"mubeen","user_contact_number":"923344561223","city":"isb","country":"pak", "address": "texla", "profile_img": (pp),"cover_img":(pp)] as [String : Any]
// let parameters = ["email": username, "password": password]
//create the url with NSURL
let url = URL(string: baseURL+"dashboard/profile/updated")!
//create the session object
let session = URLSession.shared
//now create the Request object using the url object
var request = URLRequest(url: url)
request.httpMethod = "POST" //set http method as POST
do {
request.httpBody = try JSONSerialization.data(withJSONObject: parameters, options: .prettyPrinted) // pass dictionary to data object and set it as request body
} catch let error {
print(error.localizedDescription)
completion(nil, error)
}
//HTTP Headers
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
let accessToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjA0M2UzZTNkZTIwN2YyNTBmZDkxZWRjOWVmZWM4NWE0YzJlYWE2Mzc2OWNiYWFkNmI3YjhiNjYzYTIyZDJiYzYyMDQxNzI4ZmU0NTYzMGM4In0.eyJhdWQiOiIxIiwianRpIjoiMDQzZTNlM2RlMjA3ZjI1MGZkOTFlZGM5ZWZlYzg1YTRjMmVhYTYzNzY5Y2JhYWQ2YjdiOGI2NjNhMjJkMmJjNjIwNDE3MjhmZTQ1NjMwYzgiLCJpYXQiOjE1NzUyNjgxMzAsIm5iZiI6MTU3NTI2ODEzMCwiZXhwIjoxNjA2ODkwNTMwLCJzdWIiOiIzIiwic2NvcGVzIjpbXX0.pL6rrq4Hta1Sh4lqc6WXw39mgDZ7x9aqk_-u2-EycZtFCyRFiMctSRPggt3kV3lU4uJZvuSDMXO6saiKHDSftGr6IvXMaj9Rpjqah8AJGni5FFBBL978ZRPuAnqUUDVztT7ADH3kS7Nj6BVly63nQ8pc_m5c-V_bwe_wKlXk7oFuSvind4oIefLIfuam2HxYHJ0jn-wuZ3bu48N0R1L5h3kWhP3Ex-EBVJ1-WVryb1UeaBEnlLECVe-BuvaHMcr9MAPJP8jY2vIbLpn14vGAhW8co01T-zvOVU1NhnIuwZt9ZaruMnQkHTAh6DyGm6wguhL18_do3oC6JFPXqrl9-XFAFumjjRpLoAqm9j1lFfKNDs_5ryvNp9REcnoo9gqcC8sCw8JMQ5QjJVGNrYds8HBDvM4D6knbco87mDE_12UGWSmfQvZv445LHy-ufMkNM1I3uZD1r9CY3EsITCzUokU-i7n6ogrg0oIgZWJ1j5aXevCVGQ1naSKEROknvvRcyAWlMTyiexElUWnUXo9qNS6pDnSY4idPpXXLn3E2OfFgfUh0JyXDk4_H1nXRdYltYXe8q9t0gSabZ9wWE0XPaHJUy-YeER7nkTpQQk7wFNZNSXwPC_tlA4nKfTP4jlQ32BH1uX_HUCziBHguQpqUMNkSUoJt4J3H6GRA-hDKZ-o"
request.setValue("Bearer \(accessToken)", forHTTPHeaderField: "Authorization")
//create dataTask using the session object to send data to the server
let task = session.dataTask(with: request, completionHandler: { data, response, error in
guard error == nil else {
completion(nil, error)
return
}
guard let data = data else {
completion(nil, NSError(domain: "dataNilError", code: -100001, userInfo: nil))
return
}
do {
let jsonString = NSString(data: data, encoding: String.Encoding.utf8.rawValue)! as String
//create json object from data
guard let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [String: Any] else {
completion(nil, NSError(domain: "invalidJSONTypeError", code: -100009, userInfo: nil))
return
}
print(json)
//let user = json[]
} catch let error {
print(error.localizedDescription)
completion(nil, error)
}
})
task.resume()
}