httpPost
2016-04-17 14:36
330 查看
import Foundation
//网络请求类
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 post(urlString urlString: String?,postParams: NSDictionary!,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 = NSMutableURLRequest(URL: url!, cachePolicy: NSURLRequestCachePolicy.UseProtocolCachePolicy, timeoutInterval: 10)
request.HTTPMethod = "POST"
parseParams(Params: postParams, completion: {(result) in
let postData: NSData = (result?.dataUsingEncoding(NSUTF8StringEncoding))!
request.HTTPBody = postData
})
let queue = NSOperationQueue()
NSURLConnection.sendAsynchronousRequest(request, queue: queue, completionHandler: {
(response,data,error) -> Void in
let httpResponse = response as? NSHTTPURLResponse
if httpResponse?.statusCode == 200{
let parseData = self.parseJSONData(data)
dispatch_async(dispatch_get_main_queue(),{
() -> Void in
completion(data: parseData)
})
}else {
dispatch_async(dispatch_get_main_queue(), {
() -> Void in
print(error)
completion(data: 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{
let parseData = self.parseJSONData(data)
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)
})
}
}
}
class func parseParams(Params Params: NSDictionary!,completion: (paramString: NSString?) -> Void){
var keyValueFormat: String?
let result = NSMutableString()
let keyEnum = Params.keyEnumerator()
while let key = keyEnum.nextObject() as? String{
keyValueFormat = String.init(format: "%@=%@&", arguments: [key,(Params.valueForKey(key)?.description)!])
result.appendString(keyValueFormat!)
}
completion(paramString: result)
}
}
使用:
let dc=NSDictionnary(object:a,forKeys:b)
HttpRequest.post(urlString:"http://59.78.93.208:9097//AdviseInsert",postParam:dc,completion:{_ in})
//网络请求类
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 post(urlString urlString: String?,postParams: NSDictionary!,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 = NSMutableURLRequest(URL: url!, cachePolicy: NSURLRequestCachePolicy.UseProtocolCachePolicy, timeoutInterval: 10)
request.HTTPMethod = "POST"
parseParams(Params: postParams, completion: {(result) in
let postData: NSData = (result?.dataUsingEncoding(NSUTF8StringEncoding))!
request.HTTPBody = postData
})
let queue = NSOperationQueue()
NSURLConnection.sendAsynchronousRequest(request, queue: queue, completionHandler: {
(response,data,error) -> Void in
let httpResponse = response as? NSHTTPURLResponse
if httpResponse?.statusCode == 200{
let parseData = self.parseJSONData(data)
dispatch_async(dispatch_get_main_queue(),{
() -> Void in
completion(data: parseData)
})
}else {
dispatch_async(dispatch_get_main_queue(), {
() -> Void in
print(error)
completion(data: 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{
let parseData = self.parseJSONData(data)
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)
})
}
}
}
class func parseParams(Params Params: NSDictionary!,completion: (paramString: NSString?) -> Void){
var keyValueFormat: String?
let result = NSMutableString()
let keyEnum = Params.keyEnumerator()
while let key = keyEnum.nextObject() as? String{
keyValueFormat = String.init(format: "%@=%@&", arguments: [key,(Params.valueForKey(key)?.description)!])
result.appendString(keyValueFormat!)
}
completion(paramString: result)
}
}
使用:
let dc=NSDictionnary(object:a,forKeys:b)
HttpRequest.post(urlString:"http://59.78.93.208:9097//AdviseInsert",postParam:dc,completion:{_ in})
相关文章推荐
- 网络编程基本概念
- android网络监听
- USACO-Section 4.2 The Perfect Stall (二分图最大匹配[匈牙利算法[DFS]||网络流[Ford-Fulkerson]])
- 网络编程
- Android网络编程
- 浅谈浏览器HTTP的缓存机制
- TCP/IP(一):TCP/IP协议简单介绍
- Http请求
- TCP 三次握手、四次挥手
- tcp 粘包
- TCP三次握手四次挥手
- 《云计算和大数据时代网络技术揭秘》读后感
- Android学习第七周_网络编程数据处理
- http://liubin.org/promises-book/
- XCODE7以后不能使用HTTP协议解决办法
- XCODE7以后不能使用HTTP协议解决办法
- 遗传网络算法
- TCP为什么是三次握手,而不是两次
- 神经网络 neural network
- nefu500网购【二分+网络流】