मैं आईओएस में एक एपीआई के साथ कनेक्ट करने के लिए अलामोफायर लाइब्रेरी का उपयोग कर रहा हूं। मुझे कनेक्शन में से एक में समस्या है, और मुझे नहीं पता कि यह शरीर या किसी अन्य चीज में एन्कोड किए गए डेटा की वजह से है या नहीं। मेरी त्रुटि का पता लगाने के लिए, मैं कंसोल में अनुरोध करने के लिए अनुरोध कर रहा हूं कि मैं सही डेटा संरचना भेज रहा हूं या नहीं।प्रिंट अलामोफायर अनुरोध निकाय
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)
}
}
}
उपयोगकर्ता एक mappable वस्तु है, के बाद से मैं ObjectMapper उपयोग कर रहा हूँ Alamofire के साथ संयुक्त:
मेरे कोड निम्नलिखित है। उपयोगकर्ता को निम्नलिखित कोड द्वारा परिभाषित किया गया है:
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"]
}
}
मीडिया को उपयोगकर्ता की तरह परिभाषित किया गया है, लेकिन विभिन्न चर के साथ।
इसके अलावा, मुझे पता है, की छपाई अनुरोध शरीर अलावा, अगर मैं Alimofire अनुरोध करने के लिए मानकों को एक और अधिक कुशल तरीके से (कुछ उपयोगकर्ता वस्तु को पार्स और चर पैरामीटर के लिए यह प्रतिस्थापन की तरह)
शामिल हो सकते हैं चाहते हैंमेरी समस्याओं के बारे में कोई विचार?
संपादित करें:
@Travis के सुझाव के बाद, अंत में मैं अनुरोध शरीर मुद्रण के लिए समाधान मिल गया। नीचे आप कोड मिल सकता है:
println("request body: \(NSString(data:req.HTTPBody!, encoding:NSUTF8StringEncoding) as String?)")
गुजर एक वस्तु मैं यह काम नहीं कर सकता है पैरामीटर के रूप में के बारे में, मैं आधिकारिक दस्तावेज पीछा किया, लेकिन मैं यह कर सकता है।
प्रवेश अनुरोध के लिए/प्रतिक्रिया है: https://github.com/konkab/AlamofireNetworkActivityLogger – neoneye