不良请求状态代码400请求后

问题描述:

为什么以下所有代码后,我做了po NSKeyedUnarchiver.unarchiveObject(with: (response.request?.httpBody)!)我得到nil?响应代码是400.响应代码的原因是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 

我只是万一有人离开这个在这里有同样的问题我。