您的位置:首页 > 移动开发 > Swift

基于Swift的iOS应用程序开发:使用URLSession向服务器发送请求

2017-08-08 16:32 627 查看
1、创建URLSession对象

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()
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐