请求后错误的请求状态代码 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
我就把这个留在这里,以防有人遇到和我一样的问题。
为什么在所有下面的代码之后,在我执行 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
我就把这个留在这里,以防有人遇到和我一样的问题。