Browse Source

1.添加请求头

wenweiwei 3 years ago
parent
commit
08840604a2

+ 15 - 7
BFNetRequestKit/Classes/BFNetRequestAdaptor.swift

@@ -13,7 +13,8 @@ public class BFNetRequestAdaptor: NSObject {
     public typealias completeHander = (_ jsonObject: Any?, _ extData: [String: Any]?, _ error: PQError?, _ duration: TimeInterval?) -> Void
     /// get请求
     public class func getRequestData(url: String, parames: [String: Any]?, commonParams: [String: Any]? = nil, encoding: ParameterEncoding = URLEncoding.default, isJsonEncodingNormal: Bool = false, timeoutInterval: TimeInterval = 60, response: @escaping completeHander) {
-        SWNetRequest.getRequestData(url: url, parames: requestParams(encoding: encoding, isJsonEncodingNormal: isJsonEncodingNormal, parames: parames, commonParams: commonParams), encoding: encoding, timeoutInterval: timeoutInterval) { jsonObject, error, duration in
+        let requestParams = requestParams(encoding: encoding, isJsonEncodingNormal: isJsonEncodingNormal, parames: parames, commonParams: commonParams)
+        SWNetRequest.getRequestData(url: url, parames: requestParams.0, headers: requestParams.1, encoding: encoding, timeoutInterval: timeoutInterval) { jsonObject, error, duration in
             if jsonObject != nil {
                 let paraseData = paraseJsonObject(respondDict: jsonObject as! [String: Any])
                 response(paraseData.0, paraseData.1, paraseData.2, duration)
@@ -25,7 +26,8 @@ public class BFNetRequestAdaptor: NSObject {
 
     /// post请求
     public class func postRequestData(url: String, parames: [String: Any]?, commonParams: [String: Any]? = nil, encoding: ParameterEncoding = URLEncoding.default, isJsonEncodingNormal: Bool = false, timeoutInterval: TimeInterval = 60, response: @escaping completeHander) {
-        SWNetRequest.postRequestData(url: url, parames: requestParams(encoding: encoding, isJsonEncodingNormal: isJsonEncodingNormal, parames: parames, commonParams: commonParams), encoding: encoding, timeoutInterval: timeoutInterval) { jsonObject, error, duration in
+        let requestParams = requestParams(encoding: encoding, isJsonEncodingNormal: isJsonEncodingNormal, parames: parames, commonParams: commonParams)
+        SWNetRequest.postRequestData(url: url, parames: requestParams.0, headers: requestParams.1, encoding: encoding, timeoutInterval: timeoutInterval) { jsonObject, error, duration in
             if jsonObject != nil {
                 let paraseData = paraseJsonObject(respondDict: jsonObject as! [String: Any])
                 response(paraseData.0, paraseData.1, paraseData.2, duration)
@@ -37,7 +39,8 @@ public class BFNetRequestAdaptor: NSObject {
 
     // put请求
     public class func putRequestData(url: String, parames: [String: Any]?, commonParams: [String: Any]? = nil, encoding: ParameterEncoding = URLEncoding.default, isJsonEncodingNormal: Bool = false, timeoutInterval: TimeInterval = 60, response: @escaping completeHander) {
-        SWNetRequest.putRequestData(url: url, parames: requestParams(encoding: encoding, isJsonEncodingNormal: isJsonEncodingNormal, parames: parames, commonParams: commonParams), encoding: encoding, timeoutInterval: timeoutInterval) { jsonObject, error, duration in
+        let requestParams = requestParams(encoding: encoding, isJsonEncodingNormal: isJsonEncodingNormal, parames: parames, commonParams: commonParams)
+        SWNetRequest.putRequestData(url: url, parames: requestParams.0, headers: requestParams.1, encoding: encoding, timeoutInterval: timeoutInterval) { jsonObject, error, duration in
             if jsonObject != nil {
                 let paraseData = paraseJsonObject(respondDict: jsonObject as! [String: Any])
                 response(paraseData.0, paraseData.1, paraseData.2, duration)
@@ -49,7 +52,8 @@ public class BFNetRequestAdaptor: NSObject {
 
     /// delete请求
     public class func deleteRequestData(url: String, parames: [String: Any]?, commonParams: [String: Any]? = nil, encoding: ParameterEncoding = URLEncoding.default, isJsonEncodingNormal: Bool = false, timeoutInterval: TimeInterval = 60, response: @escaping completeHander) {
-        SWNetRequest.deleteRequestData(url: url, parames: requestParams(encoding: encoding, isJsonEncodingNormal: isJsonEncodingNormal, parames: parames, commonParams: commonParams), encoding: encoding, timeoutInterval: timeoutInterval) { jsonObject, error, duration in
+        let requestParams = requestParams(encoding: encoding, isJsonEncodingNormal: isJsonEncodingNormal, parames: parames, commonParams: commonParams)
+        SWNetRequest.deleteRequestData(url: url, parames: requestParams.0, headers: requestParams.1, encoding: encoding, timeoutInterval: timeoutInterval) { jsonObject, error, duration in
             if jsonObject != nil {
                 let paraseData = paraseJsonObject(respondDict: jsonObject as! [String: Any])
                 response(paraseData.0, paraseData.1, paraseData.2, duration)
@@ -61,7 +65,8 @@ public class BFNetRequestAdaptor: NSObject {
 
     /// head请求
     public class func headRequestData(url: String, parames: [String: Any]?, commonParams: [String: Any]? = nil, encoding: ParameterEncoding = URLEncoding.default, isJsonEncodingNormal: Bool = false, timeoutInterval: TimeInterval = 60, response: @escaping completeHander) {
-        SWNetRequest.headRequestData(url: url, parames: requestParams(encoding: encoding, isJsonEncodingNormal: isJsonEncodingNormal, parames: parames, commonParams: commonParams), encoding: encoding, timeoutInterval: timeoutInterval) { jsonObject, error, duration in
+        let requestParams = requestParams(encoding: encoding, isJsonEncodingNormal: isJsonEncodingNormal, parames: parames, commonParams: commonParams)
+        SWNetRequest.headRequestData(url: url, parames: requestParams.0, headers: requestParams.1, encoding: encoding, timeoutInterval: timeoutInterval) { jsonObject, error, duration in
             if jsonObject != nil {
                 let paraseData = paraseJsonObject(respondDict: jsonObject as! [String: Any])
                 response(paraseData.0, paraseData.1, paraseData.2, duration)
@@ -99,7 +104,7 @@ public class BFNetRequestAdaptor: NSObject {
     ///   - parames: <#parames description#>
     ///   - commonParams: <#commonParams description#>
     /// - Returns: <#description#>
-    public class func requestParams(encoding: ParameterEncoding, isJsonEncodingNormal: Bool = false, parames: [String: Any]?, commonParams: [String: Any]?) -> [String: Any]? {
+    public class func requestParams(encoding: ParameterEncoding, isJsonEncodingNormal: Bool = false, parames: [String: Any]?, commonParams: [String: Any]?) -> ([String: Any]?, HTTPHeaders?) {
         var requestParams: [String: Any] = Dictionary<String, Any>.init()
         var tempCommonParams: [String: Any] = commonParams ?? Dictionary<String, Any>.init()
         var tempParames: [String: Any] = parames ?? Dictionary<String, Any>.init()
@@ -114,7 +119,10 @@ public class BFNetRequestAdaptor: NSObject {
                 requestParams[key] = value
             }
         }
-        return requestParams
+        if requestParams.keys.contains("token"), "\(requestParams["token"] ?? "")".count > 0 {
+            return (requestParams, HTTPHeaders([HTTPHeader(name: "token", value: "\(requestParams["token"] ?? "")")]))
+        }
+        return (requestParams, nil)
     }
 
     /// 解析成功数据

+ 12 - 12
BFNetRequestKit/Classes/SWNetRequest.swift

@@ -50,48 +50,48 @@ public class SWNetRequest: NSObject {
     }()
 
     /// get请求
-    public class func getRequestData(url: String, parames: [String: Any]?, encoding: ParameterEncoding = URLEncoding.default, timeoutInterval: TimeInterval = bf_timeoutInterval, response: @escaping completeHander) {
-        requestData(method: .get, encoding: encoding, url: url, parames: parames, timeoutInterval: timeoutInterval) { responseObject, error, timeline in
+    public class func getRequestData(url: String, parames: [String: Any]?, headers: HTTPHeaders? = nil, encoding: ParameterEncoding = URLEncoding.default, timeoutInterval: TimeInterval = bf_timeoutInterval, response: @escaping completeHander) {
+        requestData(method: .get, encoding: encoding, url: url, parames: parames,headers: headers, timeoutInterval: timeoutInterval) { responseObject, error, timeline in
             response(responseObject, error, timeline)
         }
     }
 
     /// post请求
-    public class func postRequestData(url: String, parames: [String: Any]?, encoding: ParameterEncoding = URLEncoding.default, timeoutInterval: TimeInterval = bf_timeoutInterval, response: @escaping completeHander) {
-        requestData(method: .post, encoding: encoding, url: url, parames: parames, timeoutInterval: timeoutInterval) { responseObject, error, timeline in
+    public class func postRequestData(url: String, parames: [String: Any]?, headers: HTTPHeaders? = nil, encoding: ParameterEncoding = URLEncoding.default, timeoutInterval: TimeInterval = bf_timeoutInterval, response: @escaping completeHander) {
+        requestData(method: .post, encoding: encoding, url: url, parames: parames,headers: headers, timeoutInterval: timeoutInterval) { responseObject, error, timeline in
             response(responseObject, error, timeline)
         }
     }
 
     // put请求
-    public class func putRequestData(url: String, parames: [String: Any]?, encoding: ParameterEncoding = URLEncoding.default, timeoutInterval: TimeInterval = bf_timeoutInterval, response: @escaping completeHander) {
-        requestData(method: .put, encoding: encoding, url: url, parames: parames, timeoutInterval: timeoutInterval) { responseObject, error, timeline in
+    public class func putRequestData(url: String, parames: [String: Any]?, headers: HTTPHeaders? = nil, encoding: ParameterEncoding = URLEncoding.default, timeoutInterval: TimeInterval = bf_timeoutInterval, response: @escaping completeHander) {
+        requestData(method: .put, encoding: encoding, url: url, parames: parames,headers: headers, timeoutInterval: timeoutInterval) { responseObject, error, timeline in
             response(responseObject, error, timeline)
         }
     }
 
     /// delete请求
-    public class func deleteRequestData(url: String, parames: [String: Any]?, encoding: ParameterEncoding = URLEncoding.default, timeoutInterval: TimeInterval = bf_timeoutInterval, response: @escaping completeHander) {
-        requestData(method: .delete, encoding: encoding, url: url, parames: parames, timeoutInterval: timeoutInterval) { responseObject, error, timeline in
+    public class func deleteRequestData(url: String, parames: [String: Any]?, headers: HTTPHeaders? = nil, encoding: ParameterEncoding = URLEncoding.default, timeoutInterval: TimeInterval = bf_timeoutInterval, response: @escaping completeHander) {
+        requestData(method: .delete, encoding: encoding, url: url, parames: parames,headers: headers, timeoutInterval: timeoutInterval) { responseObject, error, timeline in
             response(responseObject, error, timeline)
         }
     }
 
     /// head请求
-    public class func headRequestData(url: String, parames: [String: Any]?, encoding: ParameterEncoding = URLEncoding.default, timeoutInterval: TimeInterval = bf_timeoutInterval, response: @escaping completeHander) {
-        requestData(method: .head, encoding: encoding, url: url, parames: parames, timeoutInterval: timeoutInterval) { responseObject, error, timeline in
+    public class func headRequestData(url: String, parames: [String: Any]?, headers: HTTPHeaders? = nil, encoding: ParameterEncoding = URLEncoding.default, timeoutInterval: TimeInterval = bf_timeoutInterval, response: @escaping completeHander) {
+        requestData(method: .head, encoding: encoding, url: url, parames: parames,headers: headers, timeoutInterval: timeoutInterval) { responseObject, error, timeline in
             response(responseObject, error, timeline)
         }
     }
 
     /// 网络请求
-    fileprivate class func requestData(method: HTTPMethod, encoding: ParameterEncoding, url: String, parames: [String: Any]?, timeoutInterval _: TimeInterval = bf_timeoutInterval, response: @escaping completeHander) {
+    fileprivate class func requestData(method: HTTPMethod, encoding: ParameterEncoding, url: String, parames: [String: Any]?, headers: HTTPHeaders? = nil, timeoutInterval _: TimeInterval = bf_timeoutInterval, response: @escaping completeHander) {
         if !bf_validURL(url: url) {
             response(nil, PQError(msg: "非法地址", code: 0), nil)
             return
         }
         NTLog(message: "网络请求-发起:url = \(url),parames = \(parames ?? [:])")
-        sessionManager?.request(url, method: method, parameters: parames, encoding: encoding, headers: nil, requestModifier: { request in
+        sessionManager?.request(url, method: method, parameters: parames, encoding: encoding, headers: headers, requestModifier: { request in
             request.timeoutInterval = bf_timeoutInterval
         }).responseJSON { jsonResponse in
             switch jsonResponse.result {