【swift学习笔记】四.swift使用Alamofire和swiftyJson

news/2024/7/24 12:55:21 标签: cocoapods, swift, json

  Alamofire是AFNetworking的swift版本,功能灰常强大。

github:https://github.com/Alamofire/Alamofire

  SwiftyJSON是操作json的非常棒的开源库

github:https://github.com/SwiftyJSON/SwiftyJSON

  接下来我做一个简单的入门小例子,

  我使用cocoaPods来管理依赖,需要在Podfile里添加我们需要的两个库

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!

target 'AlamofireDemo' do
  pod 'Alamofire', '~> 3.4'
  pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git'
end

在terminal里运行

 cocoapods会为我们自动生成需要导入的第三方库的信息。

关闭工程打开cocoaPods为我们生成的工程文件,编辑通过后就能导入这两个库了

import Alamofire
import SwiftyJSON

因为我们要访问网络,需要在info.plist里开放权限,加入下面的代码

 <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

 

接下来就可以用它Alamofire请求网络使用swiftyJson解析Json

 

let currRequest = Alamofire.request(.POST, "http://www.yourweb.com", parameters: ["para1":"aaa",
            "para2":[0,1,2,3],
            "para3":NSNull()],
            encoding: .JSON, headers: ["Content-Type":"application/json"])
       
        currRequest.responseJSON{(responseJson) -> Void in
            print(responseJson.response?.statusCode)
            print(responseJson.request)
            print(responseJson.response)
            print(responseJson.data)
            print(responseJson.result)
            
            switch responseJson.result {
            case .Success(let value):
                print("Value:\(value)")
                print("------")
                let swiftyJsonVar = JSON(value)
                print(swiftyJsonVar)
                
            case .Failure(let error):
                print(error)
            }
        }

 

好了这个简单的例子就写完了,还有一个更方便的方法就是用下边这个库,他是集成了上边说的两个库,有时间你可以玩一下

https://github.com/SwiftyJSON/Alamofire-SwiftyJSON

 


http://www.niftyadmin.cn/n/1197314.html

相关文章

Kafka基础概念

一、kafka流式数据平台具备的 特点 1、提供事件流的发布和订阅&#xff0c;即具备数据注入功能。 2、存储事件流数据的节点具有故障容错的特点&#xff0c;即具备数据存储功能。 3、能够对实时的事件流进行流式地处理和分析&#xff0c;即具备流处理功能。 核心组件&#xff…

初始化时间(一段时间,此文章中插入三年时间到数据库,从2015年12月1日开始)...

为什么80%的码农都做不了架构师&#xff1f;>>> public void TestInitDateInfo() throws Exception { // SimpleDateFormat sf new SimpleDateFormat("yyyy-MM-dd"); Calendar c Calendar.getInstance(); //设置时间 c.setTime(DateUtils.parseDate(&q…

kafka之生产者

一、通讯过程 生产者、消费者看作客户端&#xff0c;消息代理看作服务端&#xff0c;它们之间的网络通讯如下&#xff1a; 二、概念 1、生产者发送过程&#xff1a;生产者要发送消息&#xff0c;并不是直接发送给服务端&#xff0c;而是先在客户端把消息放入队列中&#xff0c…

企业微信的外部联系人回调处理技巧

一、关于设置接收事件服务器的信息 在企业微信管理后台的“客户联系-客户”页面&#xff0c;点开“API”小按钮&#xff0c;再点击“接收事件服务器”配置&#xff0c;进入配置页面&#xff0c;要求填写URL、Token、EncodingAESKey三个参数。 URL是企业后台接收企业微信推送请…

QT 自己制作IDE工具

项目创建基类选择项目文件编译运行项目文件1 mainwindow.h#ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QTextEdit> //文本 #include <QMenu> //加入菜单 #include <QMenuBar> //加入菜单栏 #include &l…

kafka之消费者基础知识一

一、消费者基础知识 1、读消息时&#xff0c;如果多个消费者同时读取一个分区&#xff0c;为了保证将日志文件的不同数据分配给不同的消费者&#xff0c;需要采用加锁、同步等方式&#xff0c;在分区级别的日志文件上做些控制。“同一个分区只可被一个消费者处理”&#xff0c…

wiindows 2012R2+11gR2RAC(11204)多节点传送检查报PRVG-11134

安装数据库软件时&#xff0c;出现多节点传送检查失败&#xff0c;如下图该报错可以忽略&#xff0c;继续安装。官方解释如下&#xff1a;PRVG-11134: Interface "n.n.n.n" on node "racnode1" is not able tocommunicate with interface "n.n.n.n&qu…

springboot拦截器HandlerInterceptor的注入问题

一、问题描述 项目启动后&#xff0c;拦截器下的注入为null&#xff0c;影响拦截器的逻辑操作。如下图&#xff1a; 二、解决策略 原因&#xff1a; 拦截器加载是在springcontext创建之前完成&#xff0c;详情可以看spring的拦截器加载过程及IOC的关系 解决方案一&#xff1a;使…