Agent 0.1.0

Agent 0.1.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2015年6月
SPM支持SPM

Christoffer Hallas维护。



Agent 0.1.0

Agent

适用于 iOS 和 OS X 的最小化 Swift HTTP 请求代理。

简介

这是一个小巧的框架,为构建 HTTP 请求提供了便捷的 API。

使用

在本文档中,使用 req 作为 Agent 的实例。

HTTP 动词

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将是一个你可以将其强制转换为ArrayDictionaryAnyObject
  • 如果有错误,则$2将是一个你可以检查以获取更多信息 的NSError

NSMutableURLRequest

你可以使用req.request始终访问底层的NSMutableURLRequest

贡献

我们乐于接收任何pull请求。目前我们正在努力开发许多功能,如下所示。

  • 完整的异步测试
  • 插件
  • 专门的代理(处理默认头等信息)

我们欢迎任何问题。

许可协议

MIT