如何从Web API读取IOS中的HttpResponseMessage?

时间:2016-02-23 12:58:49

标签: ios iphone asp.net-web-api2 httpresponsemessage

我们开发了asp.net Web API。在Web API控制器中,有一些过滤器可以生成HttpResponseMessage作为响应。这些API正在被IOS设备应用程序使用。 API中的所有操作都返回HttpResponseMessage。如果Filter执行时没有任何错误,则执行正确执行的操作并在IOS代码中获取HttpResponseMessage。但是如果在过滤器中出现任何异常情况,说令牌无效,则HttpResponseMessage无法在IOS中获取。为什么会发生这种情况? 在Fiddler和REST Client中测试,我可以看到从操作和过滤器生成的HttpResponseMessage(如果失败)。如果Filter失败,IOS会收到nil响应。有什么建议吗? (我不是IOS的人,但是IOS团队无法解决这个问题。)

更新

let postDataTask : NSURLSessionDataTask = session.dataTaskWithRequest(request) { (data, responce, error) -> Void in

                if (error == nil)
                {
                    let strData = NSString(data: data!, encoding: NSUTF8StringEncoding)
                    let _ : NSError?

                    var json : NSDictionary!
                    do
                    {
                        json = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableLeaves) as? NSDictionary
                    }
                    catch _ as NSError
                    {}
                    var issucceeded : Bool = false

                    print("Responce - \(json)")


                    if(json != nil)
                    {
                        issucceeded = true

//                        if((json.valueForKey("RESPONSE")) != nil)
//                        {
//                            if(json.valueForKey("RESPONSE") as! NSString == "Success")
//                            {
//                                issucceeded = true
//                            }
//                        }
                        postCompleted(succeeded: issucceeded, responseDict: json)
                    }
                    else // Responce is not in proper JSON format
                    {
                        postCompleted(succeeded: false, responseDict: ["HasErrors":"1","ErrorMessage":k_Alert_24,"TryAgain":"True"])
                    }
                }
                else
                {

                    postCompleted(succeeded: false, responseDict: ["HasErrors":"1","ErrorMessage":k_Alert_24,"TryAgain":"True"])
                }
            }
           postDataTask.resume()

0 个答案:

没有答案