在xcode中用 swift 进行网络服务请求
xcode集成开发环境是运行于Mac苹果电脑上用于开发swift应用程序的工具,利用xcode可以很方便、直观的开发OS X和iOS系统所支持的应用程序。
1 开发环境:
Mac OS 10.11
Xcode 7.3.1
2 用Xcode创建一个swift项目


这里选择Single View application,后续可以用[editor]菜单进行调整。
3 添加导航栏
在main.storyboard中选中默认的viewcontroller,然后单击菜单[Editor]->[Embed in]->[Navigation Controller],如下图所示:

操作成功后,设计器中就会出现2个有关联的view,如下所示:

这时候,我们就可以拖动相关控件到View Controller上。

拖放好控件后,可以用xcode将UI上的控件拖放到后台源码中进行前后台关联,如下图:

如果遇到无法进行关联,可能是由于UI和后台文件没有正确的关联,或者当前两个文件不匹配。
4 导入第三方库
先下载Alamofire源码包,然后将Alamofire整个文件拖放到上面创建的项目根目录中,然后将Alamofire.xcodeproj拖放到主项目下


关联后,可以用command+B j进行编译,看有无错误。
这里用同样的方法导入swiftjson等库
5 代码逻辑编写
//
// MyWebViewController.swift
// swiftapp
//
// Created by Jackwang on 16/8/12.
// Copyright © 2016年 Jackwang . All rights reserved.
// import UIKit
import Alamofire
import SwiftyJSON
import ObjectMapper
import SCLAlertView; class MyWebViewController: UIViewController { @IBOutlet weak var btnReLoad: UIBarButtonItem!
@IBOutlet weak var btnBack: UIBarButtonItem!
@IBOutlet weak var btnHome: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib. btnHome.title = "首页"; //https://github.com/Alamofire/Alamofire Alamofire.request(.GET, "http://192.168.180.159:9888/MicroServiceAPI.ashx", parameters: ["uname": "admin","upwd":"EAS","api":"api.getUsers"])
.validate()
.responseJSON { response in
switch response.result {
case .Success:
print("Validation Successful")
if let strJSON = response.result.value {
print("JSON: \(strJSON)") //https://github.com/SwiftyJSON/SwiftyJSON
let json = JSON(strJSON)
print(json["Code"])
print(json["IsSuccess"])
print(json["Message"]) print(json["DTData"][]["Name"]) //null if json["IsSuccess"].int != nil {
print("Login Sucess")
// Get started
SCLAlertView().showInfo("Login Sucess", subTitle: "welcome to app")
}
if json["DTData"].string != nil {
SCLAlertView().showInfo("Login data", subTitle: "welcome to app")
}
//SCLAlertView().showInfo("ok", subTitle: "welcome to app") } case .Failure(let error):
print(error)
}
} } override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
} @IBAction func btnHomeTapped(sender: UIBarButtonItem) { print("GoHome")
} @IBAction func btnReloadTapped(sender: UIBarButtonItem) {
print("ReLoad")
}
}
6 编译运行
首次运行,如果没有配置info.plist,会报错误.这里需要打开info.plist文件,单击[+],然后添加
App Transport Security Settings
在其子项目下设置Allow Arbitrary Loads为YES.

在xcode中用 swift 进行网络服务请求的更多相关文章
- [转] 携程App网络服务通道治理和性能优化@2016
App网络服务的高可靠和低延迟对于无线业务稳定发展至关重要,过去两年来我们一直在持续优化App网络服务的性能,到今年Q2结束时基本完成了App网络服务通道治理和性能优化的阶段性目标,特此撰文总结其中的 ...
- 从网络服务生成Apex类
使用WSDL2Apex从网络服务生成Apex类 如果某个网络服务被定义在WSDL文件中,而Salesforce必须使用SOAP和网络服务进行通信,则这种情况在某些时候会为开发者带来很多麻烦.为了简化S ...
- iOS - NetRequest 网络数据请求
1.网络请求 1.1 网络通讯三要素 1.IP 地址(主机名): 网络中设备的唯一标示.不易记忆,可以用主机名(域名). 1) IP V4: 0~255.0~255.0~255.0~255 ,共有 2 ...
- Nodejs·网络服务
本章是从NodeJS拥有的模块角度,讲述了网络服务中的应用: net ----- > TCP dgram --> UDP http -----> HTTP https ----> ...
- jmeter 建立一个网络服务的测试计划
如何创建一个 测试计划 测试一个网络服务. 你会 创建5个用户发送请求到一页. 同时,你会告诉用户运行测试两次. 的总数 请求用户请求(5)x(1)x(重复2次)= 10 HTTP请求. 来 建立测试 ...
- 深入学习:如何实现不同Android设备之间相同应用程序的网络服务发现功能
在我们的app中添加网络服务发现功能(NSD)以方便在不同的设备上响应局域网中的请求.这种功能对于多设备之间点对点服务来说很有用,例如多人游戏,多人通话,文件共享等. 一,在网络中注册你的服务 注意: ...
- iOS WebServiceFramework网络服务框架浅解
网络服务几乎是每一款成功APP的必备条件,打开你手机你会发现里面不用联网的应用数量十只手指可以数出来,就算是一些以独特技术切入市场的APP如美颜相机,都至少加入了分享功能.下面我先做下简单的回顾兼扫盲 ...
- (四)跟我一起玩Linux网络服务:DHCP服务配置之中继代理
继第三部分的DHCP服务器的设置成功,我们来做一个中继代理服务器的配置吧. 我们的虚拟机结构如图: 具体参考: (一)跟我一起玩Linux网络服务:DNS服务——BIND(/etc/named.con ...
- Linux网络服务10——远程访问及控制
Linux网络服务10--远程访问及控制 一.SSH概述 1.SSH简介 SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录.远程复制等功能.SSH协议对通信双方的数 ...
随机推荐
- Android之SQLite数据存储
一.SQLite保存数据介绍 将数据库保存在数据库对于重复或者结构化数据(比如契约信息)而言是理想之选.SQL数据库的主要原则之一是架构:数据库如何组织正式声明.架构体现于用于创建数据库的SQL语句. ...
- JS案例之2——cycle元素轮播
元素轮播效果是页面中经常会使用的一种效果.这个例子实现了通过元素的隐藏和显示来表现轮播效果.效果比较简单. 效果图如下: 源代码如下: <!DOCTYPE html> <html&g ...
- 您真的理解了SQLSERVER的日志链了吗?
您真的理解了SQLSERVER的日志链了吗? 先感谢宋沄剑给本人指点迷津,还有郭忠辉童鞋今天在QQ群里抛出的问题 这个问题跟宋沄剑讨论了三天,再次感谢宋沄剑 一直以来,SQLSERVER提供了一个非常 ...
- MemoryMappedFile 在 Mono in Linux 的开发笔记
前言 MemoryMappedFile(简称MMF)类是.NET中对内存映射文件进行操作的类,内存映射文件是非常高效的本地IO方案,由操作系统提供内存与IO文件之间的映射转换,对内存映射文件的更改由操 ...
- Windows更新清理工具 (winsxs 清理工具)
Windows 更新清理工具是一款效果非常显著的Windows7.Windows8操作系统清理优化工具!经常安装系统的朋友相比有所体会,刚刚安装完成的Win7.Win8其实占的空间并不大,去掉页面文件 ...
- HTML5- Canvas入门(五)
今天要介绍的是canvas对图形对象的操作,包括图像.视频绘制,和操作像素对象的方法. 图片/视频的绘制 在canvas中,我们可以通过 drawImage() 的方法来绘制图片或视频文件,其语法为: ...
- Go build constraints
Go语言有一个不(奇)错(葩)的设计,就是build constraints(构建约束).可以在源码中通过注释的方式指定编译选项,比如只允许在linux下,或者在386的平台上编译啊之类的:还可以通过 ...
- 抛弃jQuery:Why?
原文链接:http://blog.garstasio.com/you-dont-need-jquery/ 我的Blog:http://cabbit.me/you-dont-need-jquery/wh ...
- 游戏服务器菜鸟之C#初探三游戏服务
在经过上述2番折腾之后,最后决定使用TCP进行通信,所以在一次进行重构 主要重构的要点 1.将过来的HTPP请求,重构为TCP请求: 2.使用组件FluenScheduler进行怪物的定时刷新,和定时 ...
- Application Request Route实现IIS Server Farms集群负载详解
序言 随着公司业务的发展,后台业务就变的越来越多,然而服务器的故障又像月经一样,时不时的汹涌而至,让我们防不胜防.那么后台的高可用,以及服务器的处理能力就要做一个横向扩展的方案,以使后台业务持续的稳定 ...