NSURLSession是IOS8開始出來的, 在ios開發(fā)中使用NSURLConnection后xcode會(huì)提示使用ios8開始使用Session,下面我來簡(jiǎn)單介紹下我使用的經(jīng)驗(yàn)
1使用NSURLSession
objective-c
NSURLSession *session = [[NSURLSession alloc] init];
NSURLSession *session = NSURLSessionDataTask *task = [[NSURLSession alloc] init];
[session dataTaskWithRequest:request completionHandler:^(NSData*data,NSURLResponse *response,NSError *error){
NSLog(NSString(data: data, encoding: NSUTF8StringEncoding));
}];
[task resume];
swift
//聲明
let session = NSURLSession.sharedSession()
let task:NSURLSessionDataTask = session.dataTaskWithRequest(request) { (data, response, error) -> Void in
print(NSString(data: data, encoding: NSUTF8StringEncoding))
}
task.resume()
下面我們自己來封裝一個(gè)簡(jiǎn)單的Request方法
objective-c
博主犯懶了OC還沒寫
swift
func RequestURL() -> Void {
//訪問網(wǎng)址
let request:NSMutableURLRequest = NSMutableURLRequest(URL: NSURL(string: "http")!)
//設(shè)置超時(shí)時(shí)間
request.timeoutInterval = 60
//設(shè)置訪問類型
request.HTTPMethod = "GET/POST"
//可以設(shè)置自己請(qǐng)求頭參數(shù)
//request.addValue("value", forHTTPHeaderField: "key")
request.HTTPBody = "內(nèi)容".dataUsingEncoding(NSUTF8StringEncoding)
let session = NSURLSession.sharedSession()
let task:NSURLSessionDataTask = session.dataTaskWithRequest(request) { (data, response, error) -> Void in
print(NSString(data: data!, encoding: NSUTF8StringEncoding))
}
task.resume()
}
//將閉包當(dāng)做參數(shù)傳遞
func RequestURL(URL URL:String,method:String,callback:(data:NSData,response:NSURLResponse,error:NSError) -> Void) -> Void {
//訪問網(wǎng)址
let request:NSMutableURLRequest = NSMutableURLRequest(URL: NSURL(string: URL)!)
//設(shè)置超時(shí)時(shí)間
request.timeoutInterval = 60
//設(shè)置訪問類型
request.HTTPMethod = method //"GET/POST"
//可以設(shè)置自己請(qǐng)求頭參數(shù)
//request.addValue("value", forHTTPHeaderField: "key")
request.HTTPBody = "內(nèi)容".dataUsingEncoding(NSUTF8StringEncoding)
let session = NSURLSession.sharedSession()
let task:NSURLSessionDataTask = session.dataTaskWithRequest(request) { (data, response, error) -> Void in
callback(data:data!,response:response!,error:error!)
}
task.resume()
}