SnapHTTP 1.1.0

SnapHTTP 1.1.0

测试已测试
Lang语言 SwiftSwift
许可证 自定义
发布最后发布2015年9月
SPM支持 SPM

Josh Baker维护。



SnapHTTP 1.1.0

一个极其简单的 Swift HTTP 客户端库。

功能

  • 超级简单的闭包 API,支持链式调用。
  • 支持 JSON、NSData、[UInt8]、String 作为正文内容。
  • 支持查询字符串和表单编码。
  • 内置 JSON 序列化。
  • 支持 GET、POST、PUT、HEAD、DELETE、PATCH、OPTIONS。

示例

// GET - Basic request.
http.get("http://www.google.com") { resp in
    println("response: \(resp.string)")
}

// GET - Adding parameters to the request.
http.get("http://www.google.com").params(["q": "swift lang"]) { resp in
    println("response: \(resp.string)")
}

// GET - JSON response.
http.get("https://ajax.googleapis.ac.cn/ajax/services/search/web").params(["q": "Emily Dickinson", "v": "1.0"]) { resp in
    println("JSON: \(resp.json)")
}

// GET - Binary data response. NSData or [UInt8].
http.get("https://www.google.com/images/logo.png") { resp in
    println("[UInt8]: \(resp.data.length) bytes")
    println("NSData: \(count(resp.bytes)) bytes")
}

// POST - Using the `params` method will serialize the input as form data.
http.post("https://api.twitter.com/1.1/statuses/update.json").params(["status": "Or else a peacock’s purple train"]) { resp in
    println("response: \(resp.string)")
}

// POST - Posting JSON.
http.post("https://api.twitter.com/1.1/statuses/update.json").body(["status": "Or else a peacock’s purple train"]) { resp in
    println("response: \(resp.string)")
}

// POST - Posting a string.
http.post("http://domain.com").body("plain text sent to server") { resp in
    println("response: \(resp.string)")
}

// POST - Posting binary. This can be a [UInt8], NSData, or NSInputStream
var data : [UInt8] = [/* some good data */]
http.post("http://domain.com").body(data) { resp in
    println("response: \(resp.string)")
}

// Custom Headers
var imageData = NSData() // pretend we have some jpeg data 
http.post("http://domain.com").header(["Content-Type": "image/jpeg"]).body(imageData) { resp in
    println("response: \(resp.string)")
}

// Cancelling
var req = http.get("http://google.com") { resp in
    println("response: \(resp.string)")
}
req.cancel()

// Error Handling
var req = http.get("badscheme://google.com") { resp in
    if resp.error != nil {
        println("Connection error: \(resp.error!)")
        return
    }
    println("response: \(resp.string)")
}

安装(iOS 和 OS X)

手动

SnapHTTP\http.swift 文件复制到您的项目中。

手动安装时无需导入 import SnapHTTP

联系

Josh Baker @tidwall

许可证

SnapHTTP 源代码可在 MIT 许可证下获取。