Mesh
封装了URLSession。
安装
pod init
pod 'Mesh'
pod install
GET
import Mesh
let mesh = Mesh(baseURL: "https://jsonplaceholder.typicode.com")
mesh.get(endpoint: "/posts", progressHandler: {
print($0)
}) {
switch $0 {
case .success(let reply):
print(reply.payload)
print(reply.mimeType)
print(reply.allHeaderFields)
print(reply.url)
case .failure:
// Present alert to user
print("An error occurred.")
}
}
POST
let mesh = Mesh(baseURL: "https://jsonplaceholder.typicode.com")
mesh.post(endpoint: "/posts", httpBody: ["username" : "manasshr"], progressHandler: {
print($0)
}) {
switch $0 {
case .success(let reply):
print(reply.payload)
case .failure:
print("An error occurred.")
}
}
PUT
mesh.put(endpoint: "/posts/1", httpBody: ["username" : "manasshr"])
HEAD
mesh.head(endpoint: "")
补丁
mesh.patch(endpoint: "/posts/1", httpBody: ["username" : "manasshr"])
删除
mesh.delete(endpoint: "/posts/1", httpBody: ["username" : "manasshr"])
下载中
let url = "https://images.pexels.com/photos/617278/pexels-photo-617278.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500"
Mesh.download(url: url, progressHandler: {
print($0)
}) {
switch $0 {
case .success(let localUrl):
async {
if let data = try? Data(contentsOf: localUrl) {
self.someImageView.image = UIImage(data: data)
}
}
case .failure:
print("An error occurred.")
}
}