Fire 2.5.0

Fire 2.5.0

DocsDocumented
TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Apr 2017
SwiftSwift Version 3.0
SPMSupports SPM

Maintained by Meniny.


Downloads

Total94
Week61
Month94

Installs

Apps12
Apps WeekApps This Week 10
powered by Segment

GitHub

Stars140
Watchers3
Forks8
Issues0
Contributors2
Pull Requests0

Code

Files9
SizeIntegration Size 84 kb
LOCLines of Code 749


Fire 2.5.0


Introduction

What's this?

Fire is a delightful HTTP/HTTPS networking framework for iOS/macOS/watchOS/tvOS platform written in Swift and inspired by Python-Requests: HTTP for Humans.

Fire was written for humans to read, and incidentally, for machines to execute :)

Features

  • [x] Chainable Request / Response Methods
  • [x] Upload File / Data / MultipartFormData
  • [x] HTTP Basic Authorization
  • [x] TLS Certificate and Public Key Pinning
  • [x] Comprehensive Unit and Integration Test Coverage
  • [x] Synchronously/Asynchronously Request
  • [x] Timeouts
  • [x] form (x-www-form-encoded)/JSON HTTP body

Requirements

  • iOS 8.0+
  • macOS 10.10+
  • watchOS 2.0+
  • tvOS 9.0+
  • Xcode 8 with Swift 3

Dependency

Contribution

You are welcome to fork and submit pull requests.

License

Fire is open-sourced software, licensed under the MIT license.

Usage

To send a request with Fire, you need to do 3 steps.

First, build up a Fire object:

let f = Fire.build(HTTPMethod: .GET, url: "https://yourdomain.com/get?l=zh")

Then, config the Fire object:

f.setParams(["key": "value"])
f.setFiles([file])
f.setHTTPHeaders(["Accept": "application/json"])
f.setBasicAuth("user", password: "pwd!@#")
f.setHTTPBody(raw: json.rawValue)
let certData = NSData(contentsOfFile: NSBundle.mainBundle().pathForResource("FireDemo", ofType: "cer")!)!
f.setSSLPinning(localCertData: certData) {
    print("Warning: Under Man-in-the-middle attack!!")
}
f.onError({ (error) -> Void in
    print("Error: Network offline!")
})

Finally, fire up:

f.fire { (json, resp) -> Void in
    print(json["arg"]["key"].stringValue)
}

// or

f.fireForJSON { (json, resp) -> Void in
    print(json["arg"]["key"].stringValue)
}

// or

f.fireForString { (str, resp) -> Void in
    print(str)
}

// or

f.fireForData { (data, resp) -> Void in
    print("Success")
}

If you want to cancel it:

f.cancel {
   print("Canceled")
}

Use FireDispatch if you want to send requests synchronously:

let f = Fire.build(HTTPMethod: .GET, url: api.stringValue, timeout: timeout, dispatch: dispatch)

中文介绍

这是什么?

Fire 一个使用 Swift 书写的轻量级 iOS/macOS/watchOS/tvOS 平台 HTTP/HTTPS 网络框架,深受 Python-Requests: HTTP for Humans 启发。

Fire 为了更好的可读性而生,碰巧还可以运行 :)

特性

  • [x] 链式调用的请求和响应方法
  • [x] 上传文件和数据
  • [x] 支持 HTTP Basic 认证
  • [x] 支持 SSL Pinning
  • [x] 全面的单元和集成测试覆盖
  • [x] 同步/异步请求
  • [x] 超时
  • [x] 支持 form (x-www-form-encoded)/JSON HTTP 请求体

环境

  • iOS 8.0+
  • macOS 10.10+
  • watchOS 2.0+
  • tvOS 9.0+
  • Xcode 8 及 Swift 3

依赖

安装

贡献

欢迎任何人提交代码和问题。

协议

Fire 是一个开源软体,遵循 MIT 协议。

使用

要使用 Fire 发送请求,你只需要三个步骤。

首先,构建一个 Fire 实例:

let f = Fire.build(HTTPMethod: .GET, url: "https://yourdomain.com/get?l=zh")

然后,进行一些配置:

f.setParams(["key": "value"])
f.setFiles([file])
f.setHTTPHeaders(["Accept": "application/json"])
f.setBasicAuth("user", password: "pwd!@#")
f.setHTTPBody(raw: json.rawValue)
let certData = NSData(contentsOfFile: NSBundle.mainBundle().pathForResource("FireDemo", ofType: "cer")!)!
f.setSSLPinning(localCertData: certData) {
    print("Warning: Under Man-in-the-middle attack!!")
}
f.onError({ (error) -> Void in
    print("Error: Network offline!")
})

最后,发起请求:

f.fire { (json, resp) -> Void in
    print(json["arg"]["key"].stringValue)
}

// or

f.fireForJSON { (json, resp) -> Void in
    print(json["arg"]["key"].stringValue)
}

// or

f.fireForString { (str, resp) -> Void in
    print(str)
}

// or

f.fireForData { (data, resp) -> Void in
    print("Success")
}

如果你需要取消请求:

f.cancel {
   print("Canceled")
}

如果你想发送同步请求, 请使用 FireDispatch:

let f = Fire.build(HTTPMethod: .GET, url: api.stringValue, timeout: timeout, dispatch: dispatch)