当前位置: 首页 > 编程笔记 >

如何使用Swift在iOS App上发出HTTP请求?

百里业
2023-03-14
本文向大家介绍如何使用Swift在iOS App上发出HTTP请求?,包括了如何使用Swift在iOS App上发出HTTP请求?的使用技巧和注意事项,需要的朋友参考一下

要在iOS中发出http请求,我们将使用DataTask和会话。我们将创建配置,会话,URL,请求和dataTask对象。让我们看看我们将要执行的步骤。

HTTP请求的类型可以不同,这取决于我们要对服务器发出的请求类型。以下是请求的基本类型。

“ GET”,“ POST”,“ PUT”,“ DELETE”,我们可以根据我们的API使用其中任何一个。每种请求的基本知识都相同,如下所示。让我们来看一下带有DELETE类型的请求的示例。

  • 首先我们需要创建一个会话对象,这是默认配置。

let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration)
  • 然后,我们需要创建所需类型的URL请求,可以将其获取,发布,删除或放置。在此示例中,我们看到的是“删除”类型。

let url = URL(string: URLString)
//让url = NSURL(string:urlString as String)
var request : URLRequest = URLRequest(url: url!)
request.httpMethod = "DELETE"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
  • 创建请求对象后,我们需要使用上面刚刚创建的URL执行dataTask。这就是我们完整的dataTask方法现在的样子。

let dataTask = session.dataTask(with: url!) { data,response,error in
   guard let httpResponse = response as? HTTPURLResponse, let receivedData = data
   else {
      print("error: not a valid http response")
      return
   }
   switch (httpResponse.statusCode) {
      case 200: //成功的回应。
         break
      case 400:
         break
      default:
         break
   }
}
dataTask.resume()
  • 现在,我们可以将其嵌入到函数中并在我们的代码中使用。

hitAPI(_for URLString:String) {
   let configuration = URLSessionConfiguration.default
   let session = URLSession(configuration: configuration)
   let url = URL(string: URLString)
   //让url = NSURL(string:urlString as String)
   var request : URLRequest = URLRequest(url: url!)
   request.httpMethod = "DELETE"
   request.addValue("application/json", forHTTPHeaderField: "Content-Type")
   request.addValue("application/json", forHTTPHeaderField: "Accept")
   let dataTask = session.dataTask(with: url!) { data,response,error in
      //1:检查HTTP响应以获取成功的GET请求
      guard let httpResponse = response as? HTTPURLResponse, let receivedData = data
      else {
         print("error: not a valid http response")
         return
      }
      switch (httpResponse.statusCode) {
         case 200:
            //成功的回应。
            break
         case 400:
            break
         default:
            break
      }
   }
   dataTask.resume()
}

注意:您可能需要允许info.plist文件中的“传输安全性”异常访问某些API。

此示例未显示任何输出,因为删除某些数据需要使用API。

 类似资料:
  • 本文向大家介绍如何使用Swift在iOS App上发出HTTP POST请求?,包括了如何使用Swift在iOS App上发出HTTP POST请求?的使用技巧和注意事项,需要的朋友参考一下 要在iOS中发出http请求,我们将使用DataTask和会话。我们将创建配置,会话,URL,请求和dataTask对象。让我们看看我们将要执行的步骤。 首先我们需要创建一个会话对象,这是默认配置。 然后,我

  • 问题内容: 我在iBooks中阅读了Apple的The Programming Language Swift ,但无法弄清楚如何在Swift中发出HTTP请求(例如cURL)。我需要导入Obj- C类还是只需要导入默认库?还是无法基于本机Swift代码发出HTTP请求? 问题答案: 您可以使用,而且还是因为你通常在Objective- C做。请注意,对于iOS 7.0和更高版本,它是首选。 使用

  • 我在iBooks上读过Apple的编程语言Swift,但不知道如何在Swift中发出HTTP请求(类似于cURL)。我需要导入Obj-C类还是只需要导入默认库?或者不可能基于本机Swift代码发出HTTP请求?

  • 我在iBooks中阅读了苹果公司的编程语言Swift,但不知道如何在Swift中发出HTTP请求(类似cURL的东西)。我需要导入Obj-C类还是只需要导入默认库?还是不能基于原生Swift代码进行HTTP请求?

  • 问题内容: 我想使用这些令牌发出基本的HTTP请求:http : //www.w3.org/Protocols/rfc2616/rfc2616-sec5.html 我知道Java通常会为您做到这一点,但是我想专门设置某些令牌。 问题答案: 为什么要重新发明轮子?Apache Http Client 4 符合rfc2616。

  • 问题内容: 问题很简单。我想使用Node.js服务器作为代理,以记录,认证HTTP查询并将其转发到后端HTTP服务器(PUT,GET和DELETE请求)。 我应该为此使用哪个库?恐怕找不到。 问题答案: NodeJS支持将http.request作为标准模块:http ://nodejs.org/docs/v0.4.11/api/http.html#http.request