'JSONSerialization swift response is always nil

I'm performing a post request over my rest api that I built in node. Then the data are stored in a mongodb collection.

This is my code that I use to post the request:

    // create dataTask using the session object to send data to the server
let task = session.dataTask(with: request) { data, response, error in

    if let error = error {
        print("Post Request Error: \(error.localizedDescription)")
        return
    }

    // ensure there is valid response code returned from this HTTP response
    guard let httpResponse = response as? HTTPURLResponse,
        (200...299).contains(httpResponse.statusCode)
    else {
        print("Invalid Response received from the server")
        return
    }

    // ensure there is data returned
    guard let responseData = data else {
        print("nil Data received from the server")
        return
    }

    do {
        // create json object from data or use JSONDecoder to convert to Model stuct
        if let jsonResponse = try JSONSerialization.jsonObject(with: responseData, options: .mutableContainers) as? [String: ErrorHandler] {
            print(jsonResponse)
            DispatchQueue.main.async {
                self?.isLoading = false
                self?.signedIn = true
            }
        } else {
            print("data maybe corrupted or in wrong format")
            throw URLError(.badServerResponse)
        }
    } catch let error {
        print(error.localizedDescription)
    }
}
task.resume()

The problem is that the responseJson is always nil. I tried to perform the same request with postman and I get the response correctly. What is the problem? Also because the data are correctly uploaded everywhere.

This is my postman result of the same post request.

Postman request



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source