栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用发布和获取响应示例的快速JSON登录REST

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用发布和获取响应示例的快速JSON登录REST

URLSession
如果您不想导入
Alamofire
项目,则可以使用它来执行简单的任务。

这是一些方法:GET,POST,DELETe方法和教程

获取方法

func makeGetCall() {  // Set up the URL request  let todoEndpoint: String = "https://jsonplaceholder.typipre.com/todos/1"  guard let url = URL(string: todoEndpoint) else {    print("Error: cannot create URL")    return  }  let urlRequest = URLRequest(url: url)  // set up the session  let config = URLSessionConfiguration.default  let session = URLSession(configuration: config)  // make the request  let task = session.dataTask(with: urlRequest) {    (data, response, error) in    // check for any errors    guard error == nil else {      print("error calling GET on /todos/1")      print(error!)      return    }    // make sure we got data    guard let responseData = data else {      print("Error: did not receive data")      return    }    // parse the result as JSON, since that's what the API provides    do {      guard let todo = try JSONSerialization.jsonObject(with: responseData, options: [])        as? [String: Any] else {          print("error trying to convert data to JSON")          return      }      // now we have the todo      // let's just print it to prove we can access it      print("The todo is: " + todo.description)      // the todo object is a dictionary      // so we just access the title using the "title" key      // so check for a title and print it if we have one      guard let todoTitle = todo["title"] as? String else {        print("Could not get todo title from JSON")        return      }      print("The title is: " + todoTitle)    } catch  {      print("error trying to convert data to JSON")      return    }  }  task.resume()}

开机自检方法

func makePostCall() {  let todosEndpoint: String = "https://jsonplaceholder.typipre.com/todos"  guard let todosURL = URL(string: todosEndpoint) else {    print("Error: cannot create URL")    return  }  var todosUrlRequest = URLRequest(url: todosURL)  todosUrlRequest.httpMethod = "POST"  let newTodo: [String: Any] = ["title": "My First todo", "completed": false, "userId": 1]  let jsonTodo: Data  do {    jsonTodo = try JSONSerialization.data(withJSONObject: newTodo, options: [])    todosUrlRequest.httpBody = jsonTodo  } catch {    print("Error: cannot create JSON from todo")    return  }  let session = URLSession.shared  let task = session.dataTask(with: todosUrlRequest) {    (data, response, error) in    guard error == nil else {      print("error calling POST on /todos/1")      print(error!)      return    }    guard let responseData = data else {      print("Error: did not receive data")      return    }    // parse the result as JSON, since that's what the API provides    do {      guard let receivedTodo = try JSONSerialization.jsonObject(with: responseData,        options: []) as? [String: Any] else {          print("Could not get JSON from responseData as dictionary")          return      }      print("The todo is: " + receivedTodo.description)      guard let todoID = receivedTodo["id"] as? Int else {        print("Could not get todoID as int from JSON")        return      }      print("The ID is: (todoID)")    } catch  {      print("error parsing response from POST on /todos")      return    }  }  task.resume()}

删除方法

func makeDeleteCall() {  let firstTodoEndpoint: String = "https://jsonplaceholder.typipre.com/todos/1"  var firstTodoUrlRequest = URLRequest(url: URL(string: firstTodoEndpoint)!)  firstTodoUrlRequest.httpMethod = "DELETE"  let session = URLSession.shared  let task = session.dataTask(with: firstTodoUrlRequest) {    (data, response, error) in    guard let _ = data else {      print("error calling DELETE on /todos/1")      return    }    print("DELETE ok")  }  task.resume()}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/609214.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号