zoukankan      html  css  js  c++  java
  • swift4.0 Http 请求

    //
    //  HttpHelper.swift
    //  NavigateDemo
    //
    //  Created by yixin ran on 07/08/2017.
    //  Copyright © 2017 yixin ran. All rights reserved.
    //
    import UIKit
    
    public class HttpHelper{
        //单例
        public static var Shared=HttpHelper();
        // MARK:- get请求
        func Get(path: String,success: @escaping ((_ result: String) -> ()),failure: @escaping ((_ error: Error) -> ())) {
            
            let url = URL(string: path.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)!)
            
            let session = URLSession.shared
            
            let dataTask = session.dataTask(with: url!) { (data, respond, error) in
                
                if let data = data {
                    
                    if let result = String(data:data,encoding:.utf8){
                        
                        success(result)
                    }
                }else {
                    
                    failure(error!)
                }
            }
            dataTask.resume()
        }
        
        
        // MARK:- post请求
        func Post(path: String,paras: String,success: @escaping ((_ result: String) -> ()),failure: @escaping ((_ error: Error) -> ())) {
            
            let url = URL(string: path)
            var request = URLRequest.init(url: url!)
            request.httpMethod = "POST"
            
            request.httpBody = paras.data(using: .utf8)
            
            let session = URLSession.shared
            let dataTask = session.dataTask(with: request) { (data, respond, error) in
                
                if let data = data {
                    
                    if let result = String(data:data,encoding:.utf8){
                        success(result)
                    }
                    
                }else {
                    failure(error!)
                }
            }
            dataTask.resume()
        }
    }
    class JsonHelper {
        static let Shared=JsonHelper();
        private let decoder=JSONDecoder();
        private let encoder=JSONEncoder();
        func ToJson<T:Codable>(_ obj:T) -> String {
            let data=try! self.encoder.encode(obj)
            let str=String(data:data,encoding:.utf8)!
            return str
        }
        func ToObject<T:Codable>(_ data:String) -> T{
            let obj=try! self.decoder.decode(T.self, from: data.data(using: .utf8)!)
            return obj;
        }
        func GetData(_ str:String) -> Data {
            return str.data(using: .utf8)!
        }
        func GetJson(_ data:Data) -> String {
            return String(data:data,encoding:.utf8)!
        }
    }
  • 相关阅读:
    快速生成树协议 RSTP
    VLAN间路由
    二层交换机原理
    网络安全系统之四 PKI体系
    网络安全系统之三 数字证书
    生成树协议 STP
    网络安全系统之二 数字签名
    网络安全系统之一 加密算法
    系统可靠性
    DNS资源记录
  • 原文地址:https://www.cnblogs.com/Yixin-ran/p/http.html
Copyright © 2011-2022 走看看