适用于 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