美文网首页SwiftUI
SwiftUI 中使用网络请求URLSession

SwiftUI 中使用网络请求URLSession

作者: Attempt_30b7 | 来源:发表于2020-03-17 22:09 被阅读0次

    最新的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")
    

    相关文章

      网友评论

        本文标题:SwiftUI 中使用网络请求URLSession

        本文链接:https://www.haomeiwen.com/subject/aaoxyhtx.html