Tôi đang sử dụng thư viện Alamofire để kết nối với API trong iOs. Tôi có một vấn đề trong một trong những kết nối, và tôi không biết nếu đó là vì dữ liệu được mã hóa trong cơ thể hoặc bất kỳ điều gì khác. Để phát hiện lỗi của tôi, tôi đang cố gắng in trong bảng điều khiển phần thân yêu cầu để kiểm tra xem tôi có đang gửi cấu trúc dữ liệu chính xác hay không.In nội dung yêu cầu của Alamofire
Mã của tôi là như sau:
func updateUser (#user: User, completionHandler: (responseObject: User?, error: AnyObject?) ->()) {
let parameters = [
"_id": "\(user._id!)",
"email": "\(user.email!)",
"media": "\(Mapper().toJSONArray(user.media!))",
"blogs": "\(Mapper().toJSONArray(user.blogs!))"
]
var manager = Alamofire.Manager.sharedInstance
manager.request(.PUT, apiUrl + "/route/to/api", parameters: parameters, encoding: .JSON)
.responseObject{ (req: NSURLRequest, res: NSHTTPURLResponse?, user: User?, data: AnyObject?, error: NSError?) in
if(error != nil) {
NSLog("Error API updateUser: \(error)")
}
else {
completionHandler(responseObject: user as User?, error: data)
}
}
}
tài là một đối tượng trí trên bản đồ, kể từ khi tôi đang sử dụng kết hợp với ObjectMapper Alamofire. Người dùng được xác định theo mã sau:
class User: Mappable {
var _id: String?
var name: String?
var media: [Media]?
init(_id: String, name: String, media: [Media]){
self._id = _id;
self.name = name;
self.media = media
}
required init=(_ map: Map){
mapping(map)
}
func mapping(map: Map){
_id <- map["_id"]
name <- map["name"]
media <- map["media"]
}
}
Phương tiện được định nghĩa như Người dùng, nhưng có các biến khác nhau.
Ngoài ra, tôi muốn biết, ngoài cơ thể yêu cầu in, nếu tôi có thể đưa các tham số vào yêu cầu Alimofire một cách hiệu quả hơn (giống như phân tích đối tượng User và thay thế nó cho biến thông số)
Bất kỳ ý tưởng nào về sự cố của tôi?
EDIT:
Theo đề xuất của @Travis, cuối cùng tôi đã tìm thấy giải pháp để in nội dung yêu cầu. Dưới đây bạn có thể tìm thấy mã:
println("request body: \(NSString(data:req.HTTPBody!, encoding:NSUTF8StringEncoding) as String?)")
Về việc chuyển đi làm tham số một đối tượng mà tôi không thể làm việc, tôi đã làm theo tài liệu chính thức nhưng tôi có thể làm được.
Đối với yêu cầu khai thác gỗ/phản ứng có: https://github.com/konkab/AlamofireNetworkActivityLogger – neoneye