zoukankan      html  css  js  c++  java
  • 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"]!)")
                    }
                }
            }
    

    然后事情完美解决

  • 相关阅读:
    flask-admin章节二:wtforms的使用以及在数据库场景中使用QuerySelectField代替SelectField
    flask-admin章节一:使用chartkick画报表
    flask-admin众博客概述
    python smtplib发送邮件遇到的认证问题
    python logging模块可能会令人困惑的地方
    Markdown
    SpringBoot-启动过程
    SpringBoot-目录
    AbstractQueuedSynchronizer
    ThreadLocal
  • 原文地址:https://www.cnblogs.com/hualuoshuijia/p/11760371.html
Copyright © 2011-2022 走看看