Api没有显示序列化的json输出

时间:2018-03-22 11:32:17

标签: ios json swift api web-services

我创建了一个附带loginViewController.swift的简单登录屏幕。这是网址

let login_url        = "http://192.168.100.11:9000//users/authenticate"
let checksession_url = "http://192.168.100.11:9000//users/authenticate"

我有简单的登录API。它在post man web服务上显示响应的Web服务,但它没有在Xcode上显示序列化的json输出。如何从url序列化json?

api从username =" andrews"获得两个参数。和密码=" admin2"

func login_now(username:String, password:String){
        let post_data: NSDictionary = NSMutableDictionary()

        post_data.setValue(username, forKey: "username")
        post_data.setValue(password, forKey: "password")

        let url:URL = URL(string: login_url)!
        let session = URLSession.shared

        let request = NSMutableURLRequest(url: url)
        request.httpMethod = "POST"
        request.cachePolicy = NSURLRequest.CachePolicy.reloadIgnoringCacheData

        var paramString = ""


        for (key, value) in post_data {
            paramString =  paramString + (key as! String) + "=" + (value as! String) + "&"
        }
        let endIndex = paramString.index(paramString.endIndex, offsetBy: -1)
        let truncated = paramString.substring(to: endIndex)
        paramString=truncated
        print(paramString)    // This won't consist of last &
        request.httpBody = paramString.data(using: String.Encoding.utf8)

        let task = session.dataTask(with: request as URLRequest, completionHandler: {
            (
            data, response, error) in

            guard let _:Data = data, let _:URLResponse = response  , error == nil else {

                return
            }



            let json: Any?

            do
            {
                json = try JSONSerialization.jsonObject(with: data!, options: [])
//////////////here json object is not formed to get json output


                print("abc")
                print(json)
            }
            catch
            {
                return
            }

            guard let server_response = json as? NSDictionary else
            {
                return
            }


            if let data_block = server_response["data"] as? NSDictionary
            {
                if let session_data = data_block["session"] as? String
                {
                    self.login_session = session_data

                    let preferences = UserDefaults.standard
                    preferences.set(session_data, forKey: "session")

                    DispatchQueue.main.async(execute: self.LoginDone)
                }
            }



        })

        task.resume()


    }

这里没有形成json对象来获取序列化的json output.how来获取序列化的json out on Nslog?您可以从this link下载项目。

0 个答案:

没有答案