【发布时间】:2017-10-05 09:10:08
【问题描述】:
为什么在下面的所有代码之后,在我执行 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"} 那样放置主体,它可以工作并且我得到一个很好的代码,但是如果我使用一个键和值它就不会。我该怎么做?
【问题讨论】:
标签: ios swift alamofire nsurlrequest