【问题标题】:how to implement put http request using alamofire如何使用 alamofire 实现 put http 请求
【发布时间】:2018-04-07 09:55:54
【问题描述】:

下面我有我使用这个 api https://jsonplaceholder.typicode.com/posts 获取 http 请求的代码,我想知道如何使用 put 使用 alamofire 来更新 api 上的数据,我想使用 id 更新它

{
    "userId": 1,
    "id": 1,
    "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
    "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
  },

我的 alamofire 获取请求代码

func demoApi() {
        Alamofire.request("https://jsonplaceholder.typicode.com/posts", method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseJSON { (response:DataResponse<Any>) in

            switch(response.result) {
//            case .success(_):
//                guard let json = response.result.value as! [[String:Any]]? else{ return}
//                print("Response \(json)")
//                for item in json {
//
//                    if let name = item["name"] as? String {
//                        self.titleArray.append(name)
//                        print("ang name:" , name)
//
//                    }
//
//                    DispatchQueue.main.async {
//                        self.collectionView.reloadData()
//                    }
//                }
//                break

            case .success(_):
                guard let json = response.result.value as! [[String:Any]]? else{ return}
                print("Response \(json)")
                for item in json {

                    self.getAllDetail.append(item)

                    // if let title = item["title"] as? String {
                    //   self.titleArray.append(title)
                    // }

                }
                if !self.getAllDetail.isEmpty{
                    DispatchQueue.main.async {
                        self.collectionView.reloadData()
                    }
                }
                break

            case .failure(_):
                print("Error")
                break

            }
        }

    }

【问题讨论】:

    标签: ios swift httprequest alamofire


    【解决方案1】:

    喜欢,有关信息,您可以从here获得样本

      let  params  = ["userId": 1,
    "id": 1,
    "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
    "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"] as [String: Any]
    
    
    Alamofire.request("https://jsonplaceholder.typicode.com/posts", method: .put, parameters: params, encoding: JSONEncoding.default, headers: nil).responseJSON { (response:DataResponse<Any>) in
    
                switch(response.result) {
    
    
                case .success(_):
                    guard let json = response.result.value as! [[String:Any]]? else{ return}
                    print("Response \(json)")
    
    
                    break
    
                case .failure(_):
                    print("Error")
                    break
    
                }
            }
    
        }
    

    【讨论】:

    • 别担心我可以动态实现它
    • @DurnKurvirck -- 例如let params = ["userId": pass your ID,
    【解决方案2】:

    供将来参考:

      let parameters = ["userId": 1,
                      "id": 1,
                      "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
                      "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"] as [String : Any]
    
    
    
    let urlString = "https://jsonplaceholder.typicode.com/posts"
    
    Alamofire.request(urlString, method: .post, parameters: parameters,encoding: JSONEncoding.default, headers: nil).responseJSON {
    response in
    switch response.result {
    case .success:
    print(response)
    
    break
    case .failure(let error):
    
    print(error)
    }
    }
    

    【讨论】:

    • 我很高兴@DurnKurvirck 这只是为了将来使用 POST 方法参考。
    • 嗨,我想问一个问题,@abh
    • 我似乎无法打印这些数据 "occurrence": { "name": "once" }, ,如何将其转换为 [] ?
    • 抱歉我没听懂你的问题?
    • 我想以这种方式打印它 print("You selected #( getTempDetails["occurrence:",["name"] as?String ?? "" )!") ,对吗?
    猜你喜欢
    • 1970-01-01
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多