swift3.0 URLSession网络请求工具类封装(get请求,post请求)
来源:互联网 发布:萧然问政网络 编辑:程序博客网 时间:2024/06/10 07:34
//类名: HCTool
//单例
static let share = HCTool()
// MARK:- get请求
func getWithPath(path:String,paras: Dictionary<String,Any>?,success:@escaping ((_ result:Any) -> ()),failure: @escaping ((_ error:Error) -> ())) {
var i =0
var address = path
iflet paras = paras {
for (key,value)in paras {
if i ==0 {
address +="?\(key)=\(value)"
}else {
address +="&\(key)=\(value)"
}
i += 1
}
}
let url =URL(string: address.addingPercentEncoding(withAllowedCharacters:CharacterSet.urlQueryAllowed)!)
let session =URLSession.shared
let dataTask = session.dataTask(with: url!) { (data, respond, error)in
iflet data = data {
iflet result = try?JSONSerialization.jsonObject(with: data, options: .allowFragments){
success(result)
}
}else {
failure(error!)
}
}
dataTask.resume()
}
// MARK:- post请求
func postWithPath(path:String,paras: Dictionary<String,Any>?,success:@escaping ((_ result:Any) -> ()),failure: @escaping ((_ error:Error) -> ())) {
var i =0
var address:String = ""
iflet paras = paras {
for (key,value)in paras {
if i ==0 {
address +="\(key)=\(value)"
}else {
address +="&\(key)=\(value)"
}
i += 1
}
}
let url =URL(string: path)
var request =URLRequest.init(url: url!)
request.httpMethod ="POST"
print(address)
request.httpBody = address.data(using: .utf8)
let session =URLSession.shared
let dataTask = session.dataTask(with: request) { (data, respond, error)in
iflet data = data {
iflet result = try?JSONSerialization.jsonObject(with: data, options: .allowFragments) {
success(result)
}
}else {
failure(error!)
}
}
dataTask.resume()
}
例: get使用方法:
// MARK:- 请求Message数据
@objc fileprivatefunc loadData() {
let path ="\(totalAddress)flzxbg_service_vmessage/vmessage/getbyuserid"
let dict = ["userid":1]
HCTool.share.getWithPath(path: path, paras: dict, success: { (result)in
print(result)
}) { (error) in
print(error)
}
- swift3.0 URLSession网络请求工具类封装(get请求,post请求)
- swift3.0请求https封装工具类(get请求和post请求)
- swift3 AF网络post和get请求
- Swift3.0 Alamofire 网络请求的封装--->get,post,upload图片上传
- 网络请求get/post工具类:NetUtil
- 封装GET、POST请求
- Android-封装post和get 网络请求
- Swift3.0 网络请求二次封装
- 同步网络请求 类封装,包括get请求和post请求,可选择是否进行JSON解析
- 简单网络请求/GET请求/POST请求
- 网络请求(get&&post)
- 网络请求(get Post)
- okhttp3简单封装GET和POST请求工具类
- Swift3.0 + AFN3.0 + MJExtention + (泛型)封装网络请求类
- iOS开发-URLSession使用-URLSession网络请求
- 封装网络请求工具类
- Android 原生HttpURLConnection网络请求工具类(get post)
- Android网络请求,Get方式请求,HttpURLConnection请求工具类
- IO流学习小结
- [Android][API] AlarmManager 简析
- Android Context完全解析,你所不知道的Context的各种细节
- JFreeChart 简单使用
- 论学习高效
- swift3.0 URLSession网络请求工具类封装(get请求,post请求)
- 在ubuntu 14.04 64bit 上搭建c/c++集成开发环境
- New Year Transportation
- mongodb导出数据,并解决乱码问题
- wish圈:wish商户平台高清视频教程全套下载【共67集】+持续更新
- 青岛网络赛部分题解
- url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介
- 解决NGUI图片拼接中间出现1像素接缝的问题
- 一阶段暂时汇总