HttpRequest
2016-04-07 19:47
639 查看
class HttpRequest: NSObject{
override init() {
super.init()
}
class func parseJSONData(data: AnyObject?) ->NSArray?{
do{
let downloadData=data as? NSData
let jsonObject = try NSJSONSerialization.JSONObjectWithData(downloadData!, options: NSJSONReadingOptions.MutableContainers) as? NSArray
return jsonObject
}catch{
}
return nil
}
class func request(urlString urlString: String?,completion: (data: NSArray?) -> Void){
if urlString == nil {
dispatch_async(dispatch_get_main_queue(),{ () -> Void in
print("urlString 为空")
completion(data: nil)
})
}
let url = NSURL(string: urlString!)
let request = NSURLRequest(URL: url!)
let queue = NSOperationQueue()
NSURLConnection.sendAsynchronousRequest(request, queue: queue) {
(response, data, error) -> Void in
let httpResponse = response as? NSHTTPURLResponse
let code=httpResponse?.statusCode
if code==200{
//NSLog("123","123")
let parseData = self.parseJSONData(data)
if parseData == nil{
NSLog("123", "debug")
}
dispatch_async(dispatch_get_main_queue(), { () -> Void in
completion(data: parseData)
})
}else{
dispatch_async(dispatch_get_main_queue(), { () -> Void in
print(error)
// 请求出现,则返回nil对象表示
completion(data: nil)
})
}
}
}
}
override init() {
super.init()
}
class func parseJSONData(data: AnyObject?) ->NSArray?{
do{
let downloadData=data as? NSData
let jsonObject = try NSJSONSerialization.JSONObjectWithData(downloadData!, options: NSJSONReadingOptions.MutableContainers) as? NSArray
return jsonObject
}catch{
}
return nil
}
class func request(urlString urlString: String?,completion: (data: NSArray?) -> Void){
if urlString == nil {
dispatch_async(dispatch_get_main_queue(),{ () -> Void in
print("urlString 为空")
completion(data: nil)
})
}
let url = NSURL(string: urlString!)
let request = NSURLRequest(URL: url!)
let queue = NSOperationQueue()
NSURLConnection.sendAsynchronousRequest(request, queue: queue) {
(response, data, error) -> Void in
let httpResponse = response as? NSHTTPURLResponse
let code=httpResponse?.statusCode
if code==200{
//NSLog("123","123")
let parseData = self.parseJSONData(data)
if parseData == nil{
NSLog("123", "debug")
}
dispatch_async(dispatch_get_main_queue(), { () -> Void in
completion(data: parseData)
})
}else{
dispatch_async(dispatch_get_main_queue(), { () -> Void in
print(error)
// 请求出现,则返回nil对象表示
completion(data: nil)
})
}
}
}
}
相关文章推荐
- 网络通信 - 重要知识点
- boson netsim5.31平台上组建交换式网络
- hdu4975A simple Gaussian elimination problem.【网络流判断是否解唯一】
- spring MVC报错 Expected MultipartHttpServletRequest: is a MultipartResolver configured?
- 网络嗅探工具的原理 sniffer&wireshark
- 网络摄像头的角度与视野宽度
- Oracle Merge into [转] [ http://www.cnblogs.com/dongsheng/p/4384754.html]
- hdu4289Control(网络流)
- C# 网络编程之基于SMTP发送电子邮件
- Android之监测手机网络状态的广播
- 以http形式启动uwsgi服务
- Linux查看网络即时网速
- head first c<11>初探网络编程上
- HTTP-FLV的两种方式
- CGOS461 [网络流24题] 餐巾(最小费用最大流)
- android学习之网络连接2
- iOS开发网络篇—NSURLConnection基本使用
- http://coolshell.cn/articles/10910.html
- iOS 网络编程详解
- 396. [网络流24题]魔术球问题(简化版