zoukankan      html  css  js  c++  java
  • httpPost

    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})

  • 相关阅读:
    JVM调优
    Java堆空间的划分:新生代、老年代
    说一下 jvm 有哪些垃圾回收器?
    JVM的垃圾回收算法有哪些
    订单并发处理--悲观锁和乐观锁、任务队列以及订单模块开发流程
    MySQL数据库的四种事务隔离级别以及事务的并发问题(脏读/不可重复读/幻读)
    Python面试总结复习(四)
    Python面试总结复习(三)
    Django表设计,多表操作复习
    python面试总结复习(二)
  • 原文地址:https://www.cnblogs.com/to-creat/p/5401022.html
Copyright © 2011-2022 走看看