Swift使用Alamofire


swift的簡單網絡請求,學藝不精,如果錯了請指出

 

platform:ios,’8.0’
target 'DemoSwift' do
    pod 'Alamofire'
#    pod 'swiftJson'
end

 

 

以下是我封裝的一個方法,官方的地址直接copy過來的https://github.com/SwiftyJSON/SwiftyJSON,沒有問題,因為沒有寫參數,所以沒有任何問題

   func getRequestData(url:String,parame:[String:String]){
        Alamofire.request(url).responseJSON { response in
            print(response);
        };
    }

 一下是一個有參數的get請求數據,官方的代碼直接拉過來的,

func getRequestData(url:String,parame:[String:String]){
        Alamofire.request(url, method: .get, parameters: parame, encoding: JSONEncoding.default, headers: nil).responseJSON { (response) in
            if response.result.isSuccess{
                print("成功了")
                if let value = response.result.value as? [String: AnyObject]{
                    print("返回的結果:\(value) : \(value["msg"]!)")
                    
                    
                }
            }
    }

 后台一直得不到數據,還會報錯FAILURE: responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0.” UserInfo={NSDebugDescription=Invalid value around character 0.})),查資料發現如果后請求的接收方式是以post時,后台接收方式是以 from 表單時 encoding 一定要為URLEncoding.queryString。不然后台接收不到數據

改成

        Alamofire.request(url, method: .get, parameters: parame, encoding: URLEncoding.queryString, headers: nil).responseJSON { (response) in
            if response.result.isSuccess{
                print("成功了")
                if let value = response.result.value as? [String: AnyObject]{
                    print("返回的結果:\(value) : \(value["msg"]!)")
                }
            }
        }

 

然后事情完美解決

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM