简体   繁体   English

为什么 Alamofire 删除请求无效?

[英]Why doesn't Alamofire delete request no work?

Here is where I delete my a specific post.这是我删除我的特定帖子的地方。 So far all of my post and get requests work.到目前为止,我所有的帖子和获取请求都有效。 This are the API specs: https://github.com/cuappdev/ios-course-messageboard#delete-postspost_id这是 API 规格: https://github.com/cuappdev/ios-course-messageboard#delete-postspost_id

    static func deletePost(id: Int, poster: String, completion: @escaping(Post) ->   Void) {
    let endpoint = "\(host)posts/\(id)"
    let parameters: [String: Any] = [
        "poster" : poster
    ]
        AF.request(endpoint, method: .delete, parameters: parameters, encoding: JSONEncoding.default).validate().responseData { (response) in

        switch response.result {
        case .success(let data):

            let jsonDecoder = JSONDecoder()

            // get the userResponse
            if let userResponse = try? jsonDecoder.decode(Post.self, from: data) {
                completion(userResponse)
            }

        case .failure(let error):
            print(error.localizedDescription)
        }
    }
    
}

static func getAllPosts(completion: @escaping ([Post]) -> Void) {
    let endpoint = "\(host)posts/"
    
    AF.request(endpoint, method: .get).validate().responseData { response in
        switch response.result {
        case .success(let data):
            let jsonDecoder = JSONDecoder()
            // get the userResponse
            
            if let userResponse = try? jsonDecoder.decode(Posts.self, from: data) {
                completion(userResponse)
            }
            break
        case .failure(let error):
            print(error.localizedDescription)
            break
        }
    }
    
}

You can use the following code snippet.您可以使用以下代码片段。

static func deletePost(id: Int, poster: String, completion: @escaping(Post) ->   Void) {
   let endpoint = "\(host)posts/\(id)"
   let parameters: [String: Any] = [
       "poster" : poster,
      "_method" : "DELETE"
   ]

   AF.request(endpoint, method: .delete, parameters: parameters, encoding: JSONEncoding.default).validate().responseData { (response) in

    switch response.result {
    case .success(let data):

        let jsonDecoder = JSONDecoder()

        // get the userResponse
        if let userResponse = try? jsonDecoder.decode(Post.self, from: data) {
            completion(userResponse)
        }

    case .failure(let error):
        print(error.localizedDescription)
    }
} 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM