在 swift 中使用 Alamofire 的 Json 请求失败

Posted

技术标签:

【中文标题】在 swift 中使用 Alamofire 的 Json 请求失败【英文标题】:Json Request failure using Alamofire in swift 【发布时间】:2018-06-12 06:41:44 【问题描述】:

http://dev.alshmokh1.net/mobile/Login/?username=yasser&password=123

当我调用这个 api 时,我正在从后端获取数据

[
    
        "UserID": "yasser",
        "Username": null,
        "sysAdmin": "True",
        "UpdatePW": "True",
        "Name": "  selem yasser",
        "Email": "a@a/com",
        "iType": "2",
        "UserPW": "123",
        "Admin": "True",
        "Id_Bank": "5",
        "msg": "Success"
    
]

我正在使用 alamofire 解析来自 api 的数据。 这是解析代码

func login()
   

    let username = txtUserName.text!
     let password  = txtPassword.text!

    print("username\(username)  password \(password)")

    let params: [String: Any] = ["username": username, "password": password]

    let urlString = "http://dev.alshmokh1.net/mobile/Login/"
    guard let url = URL(string: urlString), var request = try? URLRequest(url: url, method: .post, headers: nil) else
        //
        return
    

    request.httpBody = params.map "\($0)=\($1)" .joined(separator: "&").data(using: .utf8)
    Alamofire.request(request).responseJSON  response in

        print("response",response)
     
    

结果

[
    
        "UserID": null,
        "Username": null,
        "sysAdmin": null,
        "UpdatePW": null,
        "Name": null,
        "Email": null,
        "iType": null,
        "UserPW": null,
        "Admin": null,
        "Id_Bank": null,
        "msg": "failure"
    
]

如何在我犯错的地方使用 alamofire 解析数据

【问题讨论】:

请检查您的请求正文 How to parse JSON response from Alamofire API in Swift?的可能重复 @ARAV 检查我的答案 【参考方案1】:

尝试此代码,因为您需要在 url 中附加参数

func login()
    

        let username = txtUserName.text!
        let password  = txtPassword.text!

        print("username\(username)  password \(password)")


        let urlString = String(format:"http://dev.alshmokh1.net/mobile/Login?username=%@&password=%@",username,password)
        guard let url = URL(string: urlString), var request = try? URLRequest(url: url, method: .post, headers: nil) else
            //
            return
        

        Alamofire.request(request).responseJSON  response in

            print("response",response)
        
    

回复

response SUCCESS: (
        
        Admin = True;
        Email = "a@a/com";
        "Id_Bank" = 5;
        Name = "  selem yasser";
        UpdatePW = True;
        UserID = yasser;
        UserPW = 123;
        Username = "<null>";
        iType = 2;
        msg = Success;
        sysAdmin = True;
    
)

【讨论】:

@ARAV 欢迎兄弟。

以上是关于在 swift 中使用 Alamofire 的 Json 请求失败的主要内容,如果未能解决你的问题,请参考以下文章

使用 swift 在 Alamofire 中使用 CURL 命令

如何在swift中使用alamofire上传图库图片

如何在 Swift / Alamofire 中使用 multipartFormData?

在 swift 中使用 Alamofire 取消 api 请求

Alamofire 在 swift 中使用正文发布请求

Swift 4:如何使用 Alamofire 在参数中发布文件?