SwiftUI

SwiftUI 中使用网络请求URLSession

2020-03-17  本文已影响0人  Attempt_30b7

最新的swiftUI发布后,作为没什么swift的基础的我也是很感兴趣,就兴致勃勃的开始学,用最新的语言开发项目。

为什么用SwiftUI呢,因为写的真的很舒服,尽管不能兼容ios13一下,但还是经不住着UI的诱惑。下面开始

第一个页面登录,首先登录肯定是要网络请求的,其实方法还是swift写的

因为项目中登录需要服务器认证Authorization,所以先写一个认证的账号密码,每个人都是不一样的

let credential = Data("账号:密码".utf8).base64EncodedString()

接下来开始,项目中要求先post请求后,在进行get请求

 guardleturl =URL(string: appLoginPost)else{   return }

    varrequset =URLRequest(url:url)

    requset.httpMethod="POST"

    requset.setValue("UTF-8", forHTTPHeaderField:"Charset")

    requset.setValue("application/json", forHTTPHeaderField:"Content-Type")

    requset.addValue("Basic \(credential)", forHTTPHeaderField:"Authorization")

    URLSession.shared.dataTask(with: requset){(Data,response,Error)in

        do{

            let json =JSON(Data!)

            if let access_token = json["access_token"].string{

                getLogin(access_token: access_token, user: user)

                userDefault.set(access_token, forKey:"ACCESS_TOKEN")

            }else{

                print("请重新输入账号和密码")

            }

        }

    }.resume()

注意返回的数据Data ,需要从中解析,推荐大家使用SwiftyJSON这个库,简洁方便。get请求使用方法一样,只需要讲刚刚获取的token传入便可

 requset.httpMethod = "GET"
 requset.setValue(access_token,forHTTPHeaderField:  "Cookie")//这里根据自己的服务器设置
 requset.setValue("application/json", forHTTPHeaderField: "Content-Type")
上一篇 下一篇

猜你喜欢

热点阅读