基于Swift的iOS应用程序开发:使用URLSession向服务器发送请求
2017-08-08 16:32
627 查看
1、创建URLSession对象
let session:URLSession = URLSession.shared2、定义请求地址和请求参数
let request:NSMutableURLRequest = NSMutableURLRequest(url: url)
request.httpMethod = "POST"
request.httpBody = postData.data(using: String.Encoding.utf8)需要注意的是,以本例这样的形式所发送的参数,服务器端会接收到一整段字符串,然后需要自行解析这个字符串,从而拿到所需的参数。这种形式非常适合传递格式化的参数,例如xml或者json格式的字符串参数
4、从URLSession对象建立请求任务
let task = session.dataTask(with: request as URLRequest) { (<#Data?#>, <#URLResponse?#>, <#Error?#>) in
//在这里编写响应方法的内容
//处理来自服务器端的响应参数
}
5、执行请求任务,完成请求发送
task.resume()
以上就完成了所有的请求发送步骤。其实苹果官方是更推荐使用URLSession来向服务器发送请求的。
以下是我封装的一个完整的方法:
/**
* 以post方式向服务器端的webservice接口发起http请求,并将来自服务器端的响应数据传递到指定的回调函数中
* 使用NSURLSession类来进行请求操作
*/
func requestToServerByPostWithNSURLSession(_ postData:String,webserviceUrl:String,completionHandler:@escaping (_ data:Data?,_ response:URLResponse?,_ error:Error?) -> Void){
print("url:"+webserviceUrl)
print("参数:"+postData)
/*
* 创建URLSession对象
*/
let session:URLSession = URLSession.shared
/*
* 定义请求地址
*/
let url:URL = URL(string:webserviceUrl)!
/*
* 定义request对象,并传递请求参数
*/
let request:NSMutableURLRequest = NSMutableURLRequest(url: url)
request.httpMethod = "POST"
request.httpBody = postData.data(using: String.Encoding.utf8)
/*
* 建立请求任务
*/
let task = session.dataTask(with: request as URLRequest,completionHandler:completionHandler)
/*
* 启动任务,执行请求
*/
task.resume()
}
let session:URLSession = URLSession.shared2、定义请求地址和请求参数
let url:URL = URL(string:"在这里填写服务器地址")! let postData:String = "在这里填写请求参数"3、根据请求地址和参数,定义request对象
let request:NSMutableURLRequest = NSMutableURLRequest(url: url)
request.httpMethod = "POST"
request.httpBody = postData.data(using: String.Encoding.utf8)需要注意的是,以本例这样的形式所发送的参数,服务器端会接收到一整段字符串,然后需要自行解析这个字符串,从而拿到所需的参数。这种形式非常适合传递格式化的参数,例如xml或者json格式的字符串参数
4、从URLSession对象建立请求任务
let task = session.dataTask(with: request as URLRequest) { (<#Data?#>, <#URLResponse?#>, <#Error?#>) in
//在这里编写响应方法的内容
//处理来自服务器端的响应参数
}
5、执行请求任务,完成请求发送
task.resume()
以上就完成了所有的请求发送步骤。其实苹果官方是更推荐使用URLSession来向服务器发送请求的。
以下是我封装的一个完整的方法:
/**
* 以post方式向服务器端的webservice接口发起http请求,并将来自服务器端的响应数据传递到指定的回调函数中
* 使用NSURLSession类来进行请求操作
*/
func requestToServerByPostWithNSURLSession(_ postData:String,webserviceUrl:String,completionHandler:@escaping (_ data:Data?,_ response:URLResponse?,_ error:Error?) -> Void){
print("url:"+webserviceUrl)
print("参数:"+postData)
/*
* 创建URLSession对象
*/
let session:URLSession = URLSession.shared
/*
* 定义请求地址
*/
let url:URL = URL(string:webserviceUrl)!
/*
* 定义request对象,并传递请求参数
*/
let request:NSMutableURLRequest = NSMutableURLRequest(url: url)
request.httpMethod = "POST"
request.httpBody = postData.data(using: String.Encoding.utf8)
/*
* 建立请求任务
*/
let task = session.dataTask(with: request as URLRequest,completionHandler:completionHandler)
/*
* 启动任务,执行请求
*/
task.resume()
}
相关文章推荐
- 基于Swift的iOS应用程序开发:使用NSMutableURLRequest向服务器发送请求
- 基于Swift的iOS应用程序开发:使用表格显示并控制数据(一):显示数据
- 基于Swift的iOS应用程序开发:使用UIImagePickerController从相册选择图片
- 基于Swift的iOS应用程序开发:使用NSUserDefaults存储本地数据
- 基于Swift的iOS应用程序开发:使用表格显示并控制数据(二):删除表格中的数据
- 基于Swift的iOS应用程序开发:使用xcode进行iOS应用程序开发时,各种Launch Image尺寸清单
- 基于Swift的iOS应用程序开发:使用UIImagePickerController调取摄像头进行拍照
- 基于Swift的iOS应用程序开发:使用表格显示并控制数据(四):使用UIRefreshController实现下拉刷新
- 基于Swift的iOS应用程序开发:使用表格显示并控制数据(三):批量处理表格数据
- iOS开发中大部分App的网络数据交换是基于HTTP协议的。本文将简单介绍在Swift中使用HTTP进行网络请求的几种方法。
- 【ios开发学习】【swift】Xcode7 使用NSURLSession发送HTTP请求的问题
- iOS开发网络篇—发送GET和POST请求(使用NSURLSession)
- iOS开发网络篇—发送GET和POST请求(使用NSURLSession)
- iOS开发网络篇—发送GET和POST请求(使用NSURLSession)
- Android开发之使用Get方法向服务器发送请求
- iOS开发网络篇—发送GET和POST请求(使用NSURLSession)
- IOS开发-使用Alamofire 和 SwiftyJSON 完成服务器api的调用
- iOS开发网络篇—发送GET和POST请求(使用NSURLSession)
- iOS开发网络篇—发送GET和POST请求(使用NSURLSession)
- iOS开发网络篇—发送GET和POST请求(使用NSURLSession)