swift-發(fā)送JSON數(shù)據(jù)給服務(wù)器

之前用OC寫代碼時候,直接用AFN可以實現(xiàn)傳json,swift項目中也有json傳值,但都是有key的,key={}格式,現(xiàn)在后臺必須要讓直接傳json,說不愿意修改自己的東西,好吧,前端實現(xiàn)吧,于是在原文中找到引用AFN的方式,感謝原作者,再次記錄一下:

首先講下OC中發(fā)送JSON格式數(shù)據(jù)給服務(wù)器:如下圖↓


image.png

下面要說的是: swift發(fā)送json格式字符串給后臺,使用AFN,如下圖 ↓


image.png

如果請求要設(shè)置請求頭,切記一定要講請求頭設(shè)置放在manager.requestSerializer = AFJSONRequestSerializer()之后,我就因為放在之前調(diào)試了很久...

調(diào)用方法:至此調(diào)用json格式請求給服務(wù)器就成功了!!!


image.png
import UIKit
import AFNetworking


//MARK: - post請求 無key和value的json傳參方式
/*
 methodIsPOST:是否是post請求
 URLString:url鏈接
 parameters:需要傳的包
 headerValue:請求頭的value
 */

class HJNetworkManager: AFHTTPSessionManager {
    static let shared = HJNetworkManager()

    func json_request(methodIsPOST:Bool, URLString:String, parameters:[String : AnyObject]?,headerValue:String, completion:@escaping (_ json :AnyObject?, _ :Bool) -> ()){

        // 成功回調(diào)
        let success = { (task:URLSessionDataTask ,json:Any?)->Void in
            completion(json as AnyObject?, true)
        }
   
        // 失敗回調(diào)
        let failure = { (task:URLSessionDataTask?, error:Error)->() in
            print("網(wǎng)絡(luò)請求錯誤:\(error)")
            completion(nil, false)
        }

        let manager = AFHTTPSessionManager()
        // json請求
        manager.requestSerializer = AFJSONRequestSerializer()
        // 設(shè)置請求頭
//        manager.requestSerializer.setValue(headerValue, forHTTPHeaderField: "token")
        manager.requestSerializer.setValue(headerValue, forHTTPHeaderField: "Authorization")

//        var headerDict = [String : String]()
//        let access_token = BaseUser.shareUser().getAccess_token()
//        headerDict = ["Authorization":"bearer " + access_token]
        
        if methodIsPOST == true {
            manager.post(URLString, parameters: parameters, progress: nil, success: success, failure: failure)
        }else{
            manager.get(URLString, parameters: parameters, progress: nil, success: success, failure: failure )
        }
    }

   
}


調(diào)用的代碼如下:

func creatLiBaoDataSource(){
    let url = BaseURLAPi.AutoziJLApiMAgentGiftPackAddWith()
    let formDict = self.changeParamJSON()
    //請求頭
    let access_token = BaseUser.shareUser().getAccess_token()
    let headerValue = "bearer " + access_token
    HJNetworkManager.shared.json_request(methodIsPOST: true, URLString: url, parameters: formDict as? [String:AnyObject], headerValue: headerValue) { (dict:AnyObject?, isSuccess:Bool) in
        if isSuccess{
            LSPrint(message: "返回的全部數(shù)據(jù)為:\(dict ?? "" as AnyObject)")
        }else{
            
        }
    }
 
   }
    
    //組件字典
    func changeParamJSON() -> NSDictionary{
        let paramDic = NSMutableDictionary()
        paramDic.setValue("1277530606967808001", forKey: "goodsId")
        paramDic.setValue("1277533881163145217", forKey: "goodsCatalogId")
        paramDic.setValue("3", forKey: "goodsNum")
        paramDic.setValue("測試", forKey: "giftPackName")
        return paramDic
    }

本章出自:http://www.itdecent.cn/p/b42418fa0f92
感謝原作者!
轉(zhuǎn)載請注明出處,謝謝配合!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容