2017-10-05 17 views
0

なぜコードが完成したのですが、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) 

EDIT:[OK]をので、私はいくつかの行を置き換え、現在のコードは次のようになりませんし、パラメータがnilもはやです:

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")、それはうまくいくのですが、キーと値を使用すると良いコードが得られます。どのように私はその仕事をするのですか?

答えて

0

私は、なぜ私が悪い要求を得たのかを知り、答えは本当に簡単でした。ちょうどjsonのシリアル化を使用しなければならなかった。

そして私はちょうどこの

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

この

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

を交換し、私はちょうど誰かが私と同じ問題を抱えている場合には、ここでこれを残しておきます。

関連する問題