适用于 iOS 和 OS X 的最小化 Swift HTTP 请求代理。
这是一个小巧的框架,为构建 HTTP 请求提供了便捷的 API。
在本文档中,使用 req 作为 Agent 的实例。
Agent API 简洁且易于使用。只需使用 Agent.<verb>(url) 即可。
您可以在一个调用中执行整个请求。在首先创建请求时提供所需的参数。通常有多个重载级别。
let done = { (response: NSHTTPURLResponse?, data: AnyObject?, error: NSError?) -> Void in
// react to the result of your request
};
Agent.post("http://example.com", headers: [ "Header": "Value" ],
data: [ "Key": "Value" ], done: done)可以省略大多数重载参数,如 headers。
每个 Agent 方法则返回 Agent 本身,因此可以写出更具表达力的代码。
Agent.post("http://example.com")
.send([ "Key": "Value" ])
.end({ (response: NSHTTPURLResponse?, data: AnyObject?, error: NSError?) -> Void in
// react to the result of your request
}
)Agent 的一个特色功能是响应闭包,不必为每个 HTTP 请求设置代理,只需在闭包中对响应进行响应即可。
In Agent,the response is of the type (response: NSHTTPURLResponse!, data: Agent.Data!, error: NSError!). A response closure that reads JSON is easily created as seen below.
let done = { (response: NSHTTPURLResponse!, data: Agent.Data!, error: NSError!) -> Void in
let json = data! as Dictionary<String, String>
println(json["Key"]!)
}GET(url: String)let req = Agent.get("http://example.com")
req.end({ (response: NSHTTPURLResponse?, data: AnyObject?, error: NSError?) -> Void in
// react to the result of your request
})POST(url: String)let req = Agent.post("http://example.com")
req.send([ "Key": "Value" ])
req.end({ (response: NSHTTPURLResponse?, data: AnyObject?, error: NSError?) -> Void in
// react to the result of your request
})PUT(url: String)let req = Agent.put("http://example.com")
req.send([ "Key": "Value" ])
req.end({ (response: NSHTTPURLResponse?, data: AnyObject?, error: NSError?) -> Void in
// react to the result of your request
})DELETE(url: String)let req = Agent.delete("http://example.com")
req.end({ (response: NSHTTPURLResponse?, data: AnyObject?, error: NSError?) -> Void in
// react to the result of your request
})send(data: AnyObject) -> Agent将 JSON 序列化任何 data 并将其作为 HTTP 体一起发送。同时隐式地将 Content-Type 头设置为 application/json。
set(header: String, value: String) -> Agent设置HTTP头为value.
end(done: Response) -> Agent将启动请求,并在完成时调用done。
$0将是一个NSHTTPURLResponse。$1将是一个你可以将其强制转换为Array或Dictionary的AnyObject。$2将是一个你可以检查以获取更多信息 的NSError。你可以使用req.request始终访问底层的NSMutableURLRequest。
我们乐于接收任何pull请求。目前我们正在努力开发许多功能,如下所示。
我们欢迎任何问题。
MIT