http封装

//基于系统的NSURLConnection的封装,暂时没有加入缓存


public enum HttpMethod: String {

   case GET = "GET"

   case POST = "POST"

   case PUT = "PUT"

   case DELETE = "DELETE"

    

}


class HttpConnect: NSObject, NSURLConnectionDataDelegate{

    var _URLConnection: NSURLConnection?

    var requetSuccessBlcok: ((jsonDict: NSDictionary) -> Void)?

    var requestErrorBlcok: ((errorCode: NSInteger) -> Void)?

    var _jsonData = NSMutableData()

    func request(method: HttpMethod, baseURL: String, parameter: Dictionary<String , AnyObject>?) {

        var realURL = baseURL

        if method == HttpMethod.GET {

            realURL = connectParameter(baseURL, parameter: parameter)

        }

        let url = NSURL(string: realURL)

        let request = NSMutableURLRequest(URL: url!)

        request.HTTPMethod = method.rawValue

        request.setValue("application/json", forHTTPHeaderField: "Content-type")

        if method != HttpMethod.GET {

            do {

                let data = try  NSJSONSerialization.dataWithJSONObject(parameter!, options: NSJSONWritingOptions.PrettyPrinted)

                request.HTTPBody = data

            }catch {

                

            }

        }

       _URLConnection = NSURLConnection(request: request, delegate: self)

    }

    

    func connectParameter(baseURL: String, parameter: Dictionary<String, AnyObject>?) -> String {

        if parameter == nil {

            return baseURL

        }else {

            let array = NSMutableArray()

            for (key,value) in parameter! {

                let str = "\(key)=\(value)"

                array.addObject(str)

            }

            let parameterStr = array.componentsJoinedByString("&")

            let realURL = "\(baseURL)?\(parameterStr)"

            return realURL

        }

    }

//MARK: NSURLConnectionDataDelegate

    func connection(connection: NSURLConnection, didReceiveResponse response: NSURLResponse) {

        

    }

    func connection(connection: NSURLConnection, didReceiveData data: NSData) {

        _jsonData.appendData(data)

    }

    func connection(connection: NSURLConnection, didFailWithError error: NSError) {

        requestErrorBlcok!(errorCode: error.code)

    }

    func connectionDidFinishLoading(connection: NSURLConnection) {

        do {

            let jsonDict = try NSJSONSerialization.JSONObjectWithData(_jsonData, options: NSJSONReadingOptions.MutableContainers)

            requetSuccessBlcok!(jsonDict: jsonDict as! NSDictionary)

        } catch {

            

        }

    }

    

}

Demo下载: ZIP 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值