加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift3 1.简单的网络请求(POST)

发布时间:2020-12-14 06:25:55 所属栏目:百科 来源:网络整理
导读:最近开始做新项目, 决定使用Swift 来做, 几个月前看了一下还是Swift2 现在已经到Swift3 了, 听说改动非常大。 那么直接从3学起吧,希望别出个4又改动非常大! 新做的项目会开始涉及到非常多的方面, 以前我是用object-c的, 所以上手Swift可能会有些不适应

最近开始做新项目, 决定使用Swift 来做, 几个月前看了一下还是Swift2 现在已经到Swift3 了, 听说改动非常大。 那么直接从3学起吧,希望别出个4又改动非常大!

新做的项目会开始涉及到非常多的方面, 以前我是用object-c的, 所以上手Swift可能会有些不适应。

废话少说, 直接上代码:


import UIKit


/// 网络访问基类
class BaseNetwrok: NSObject {

    
    /// Post 访问
    ///
    /// - Parameters:
    ///   - url: 服务器链接
    ///   - params: POST参数
    func post(url:String,params:NSMutableDictionary) {
        
        //创建会话对象
        let session     = URLSession.shared
        let serUrl      = URL(string:url)
        var request     = URLRequest(url: serUrl!)
        
        //设置访问方式为POST
        request.httpMethod = "POST"
        
        //设置POST 内容
        request.httpBody = getBody(params: params).data(using: String.Encoding.utf8)
        
        //开始访问
        let dataTask : URLSessionDataTask = session.dataTask(with: request) { (data,respones,error)  -> Void  in
            
            //访问结束
            if(error != nil) {
                //返回出错
                print(error.debugDescription)
            } else {
                
                //返回成功
                let str = String(data: data!,encoding: String.Encoding.utf8)
                
                print(str ?? "error")
            }
            
        }
        dataTask.resume()
    }
    
    
    /// 获取post内容
    ///
    /// - Parameter params: 参数
    /// - Returns: Body
    func getBody(params:NSMutableDictionary) -> String {
        
        var body : String = "";
        
        for (key,value) in params {
            
            let str = "(key)=(value)&"
            
            body = body + str
        }
        
        if(body.characters.count > 1) {
            body = (body as NSString).substring(to: body.characters.count-1)
        }
        
        return body
    }
}

以上是一个非常普通, 非常简单的网络访问。

调用代码:

let md = NSMutableDictionary()

let a = BaseNetwrok ()

a.post(url: "http://www.baidu.com",params: md)


待后续会上传更复杂的访问方式。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读