ios - 我如何使用服务器中的数组并在服务中显示

标签 ios arrays swift request mode

我使用 POST 方法从服务器收到此响应

{
    "jsonrpc": "2.0",
    "id": null,
    "result": [
    "alaa",
    "belal",
    "demo"
    "mohanad"
    ]
}

如何将数据导入服务器并保存在模型中? 这是我使用 Alamofire

的服务器请求
class servicedb: NSObject{

    class func dbs (completion: @escaping (_ error: Error?, _ db: ([Database]))->Void){
        let url = "http://176.58.117.249/web/database/list"
        let header = ["Content-Type" : "application/json"]


        Alamofire.request(url, method: .post, parameters: nil, encoding: URLEncoding.default, headers:header)
            .responseJSON{ response in
                switch response.result
                {
                case.failure(let error):
                    print (error)


                case .success(let value):
                    let json = JSON(value)
                    guard let results = json ["result"].array else
                    { return }

                    var dbs = [Database]()
                    for data in results {
                        guard let data = data.dictionary else {
                            return }

                        let datab = Database()
                        datab.result = data["result"]?.string ?? ""

                        dbs.append(datab)

                    }
                    completion(nil,dbs)

                }
        }
    }
}

我的数据模型是为了保存数据

class Database: NSObject {
    var id: Int = 0
    var result : String = ""
}

响应没有出现在我的网络服务中,也没有将数据存储在数据模型中。 提前致谢

最佳答案

在您的 Web 服务中传递一个 parameter 作为 nil 然后给一个文件管理器并传递为 String "{}" 给出成功响应。

您的 Web 服务响应在 [String] 中,因此您可以这样使用。

class func dbs (completion: @escaping (_ error: Error?,  _ db: ([String]))->Void){
    let url = "http://176.58.117.249/web/database/list"
    let header: [String:String] = ["Content-Type" : "application/json"]

    let parameters = [:] as [String : Any]



    do {
        let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
        let urlStr = URL(string: url)
        let urlRequest = URLRequest(url: urlStr!)

        var request = try URLEncoding.queryString.encode(urlRequest, with: parameters)
        request.httpMethod = "POST"
        request.httpBody = postData as Data

        for headerValue in header{
            request.addValue(headerValue.value, forHTTPHeaderField: headerValue.key)
        }

        Alamofire.request(request).responseJSON{ response in
            switch response.result
            {
            case.failure(let error):
                print (error)


            case .success(let value):
                let json = JSON(value)
                guard let results = json ["result"].array else
                { return }

                var dbs = [String]()
                for data in results {
                    dbs.append(data.string ?? "")
                }
                completion(nil,dbs)

            }
        }
    }
    catch let error{
        print(error.localizedDescription)
    }
}

关于ios - 我如何使用服务器中的数组并在服务中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47854368/

相关文章:

objective-c - 后台实时摄像头(ios)

javascript - 从对象数组中提取数据(问题稍微复杂)

php - 非法偏移类型

ios - UIImageView 和 ScrollView 奇怪的行为

json - 在 swift 中解析 A​​PI 对 JSON 的响应

php - iOS 到 php 服务器文件上传 - 我应该允许什么文件大小的图像?

objective-c - 捆绑 pathsForResourcesOfType :inDirectory:

ios - 如何从 NSMutableArray 获取 float 的总和

javascript - 查找数组中的特定元素javascript

arrays - 使用数组生成随机函数,不重复 swift