api没有使用alamofire显示序列化的json输出

Posted

技术标签:

【中文标题】api没有使用alamofire显示序列化的json输出【英文标题】:api is not displaying serialized json output using alamofire 【发布时间】:2018-03-26 15:10:21 【问题描述】:

我创建了一个简单的登录屏幕,附带 loginViewController.swift。我有简单的登录 api。它在 post man web 服务上显示响应的 web 服务没有使用 alamofire 在 xcode 上显示序列化的 json 输出。如何从 url 获取序列化 json。

et url="http://192.169.201.32:9000//users/authenticate"  ?the api is getting two parameters from username ="andrews" and password="admin2".

       let url="http://192.168.100.11:9000//users/authenticate"
    override func viewDidLoad() 
        super.viewDidLoad()

        Alamofire.request(url, method: .post, parameters:["username":"andrews","password":"admin2"], encoding: JSONEncoding.default)
            .responseJSON  response in          
/////is it correct way to enter the parameter??
                print("abcsign in")
                print(response)
                //to get status code
                if let status = response.response?.statusCode 
                    switch(status)
                    case 201:
                        print("example success")
                    default:
                        print("error with response status: \(status)")
                    
                
                //to get JSON return value
                if let result = response.result.value 
                    let JSON = result as! NSDictionary
                     print("abcsign in 2")
                    print(JSON)

                

        
        [self  .boaderSetting()]


        username_input.text = "andrews"
        password_input.text = "admin2"

        [self .login_now(username:"andrews", password:"admin2")]
        let preferences = UserDefaults.standard
        if preferences.object(forKey: "session") != nil
        
            login_session = preferences.object(forKey: "session") as! String
            check_session()
        
        else
        
            LoginToDo()
        


    

如何将序列化的 json 输出到 Ns 日志中?您可以从此链接下载项目。https://drive.google.com/file/d/1h3TMFkpyOdCB_SoLYdca5Jmh4vulL7t_/view?usp=sharing

【问题讨论】:

将 JSONEncoding 改为 URLEncoding 请发布response.result的结果 打印(response.result)。 FAILURE 响应状态错误:404 【参考方案1】:

使用 URLEncoding 代替 JSONEncoding 将解决您的问题

【讨论】:

print(response) responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840 "字符 2 周围的值无效。" UserInfo=NSDebugDescription=字符 2 周围的值无效。) ) abcsign in3 打印(response.result)。 FAILURE 响应状态错误:404

以上是关于api没有使用alamofire显示序列化的json输出的主要内容,如果未能解决你的问题,请参考以下文章

使用 Alamofire 和不记名令牌序列化对象

使用 Alamofire 和 Swift 3 反序列化复杂的 JSON

使用 Alamofire 将文件上传到 amazon s3

从 Api Url 下载图像并使用 Alamofire 在集合视图中快速显示

带有 JSON 参数的多部分数据 Alamofire

使用 Alamofire 路由器显示活动指示器