请求后错误的请求状态代码 400

Bad request status code 400 after request

为什么在所有下面的代码之后,在我执行 po NSKeyedUnarchiver.unarchiveObject(with: (response.request?.httpBody)!) 之后我得到 nil ?响应代码是 400。响应代码是 400 的原因,我相信是因为参数。有什么建议为什么会这样吗?

let urlRequest = NSMutableURLRequest(url: url)
let bodyData = parameters.first!.key + "=" + String(describing: parameters.first!.value)

urlRequest.bind(to: command!)
urlRequest.httpBody = bodyData.data(using: .utf8)
urlRequest.httpMethod = "POST"
urlRequest.allHTTPHeaderFields = NetworkManager.defaultHeaders()

return Alamofire.request(urlRequest.copy() as! URLRequest)

编辑:好的,所以我替换了一些行,现在代码看起来像这样并且参数不再为零:

let urlRequest = NSMutableURLRequest(url: url)
let dataParameters: Data = NSKeyedArchiver.archivedData(withRootObject: parameters)

urlRequest.bind(to: command!)
urlRequest.httpBody = dataParameters
urlRequest.httpMethod = HTTPMethod.post.rawValue
urlRequest.allHTTPHeaderFields = NetworkManager.defaultHeaders()

return Alamofire.request(urlRequest.copy() as! URLRequest)

但即便如此,我还是收到了 400 代码。因此,在与邮递员进行了一些调查后,我发现如果我像这样放置主体 {"xxxxx":"xxxxxxxxx"} 它可以工作并且我得到了一个好的代码,但是如果我使用键和值它不会'吨。我该怎么做?

所以我找到了为什么我收到了错误的请求,答案非常简单。只需要使用 json 序列化。

我刚刚替换了这个

let jsonData = try? JSONSerialization.data(withJSONObject: parameters)
urlRequest.httpBody = jsonData

有了这个

let dataParameters: Data = NSKeyedArchiver.archivedData(withRootObject: parameters)
urlRequest.httpBody = dataParameters

我就把这个留在这里,以防有人遇到和我一样的问题。