agent alternatives and similar libraries
Based on the "Network" category.
Alternatively, view agent alternatives based on common mentions on social networks and blogs.
-
Perfect
Server-side Swift. The Perfect core toolset and framework for Swift Developers. (For mobile back-end development, website and API development, and moreβ¦) -
SwiftSoup
SwiftSoup: Pure Swift HTML Parser, with best of DOM, CSS, and jquery (Supports Linux, iOS, Mac, tvOS, watchOS) -
Zewo
Lightweight library for web server applications in Swift on macOS and Linux powered by coroutines. -
BlueSocket
Socket framework for Swift using the Swift Package Manager. Works on iOS, macOS, and Linux. -
Connectivity
π Makes Internet connectivity detection more robust by detecting Wi-Fi networks without Internet access. -
WKZombie
WKZombie is a Swift framework for iOS/OSX to navigate within websites and collect data without the need of User Interface or API, also known as Headless browser. It can be used to run automated tests / snapshots and manipulate websites using Javascript. -
PeerKit
An open-source Swift framework for building event-driven, zero-config Multipeer Connectivity apps -
Digger
Digger is a lightweight download framework that requires only one line of code to complete the file download task -
SOAPEngine
This generic SOAP client allows you to access web services using a your iOS app, Mac OS X app and AppleTV app. -
BigBrother
DISCONTINUED. Automatically sets the network activity indicator for any performed request.
WorkOS - The modern identity platform for B2B SaaS
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of agent or a related project?
Popular Comparisons
README
Agent
Table of Contents
Minimalistic Swift HTTP request agent for iOS and OS X.
Introduction
This is a tiny framework that gives you nice a API for crafting HTTP requests.
While Agent is mainly for JSON it also lets you send and access the raw data of a request and response. However if you are looking for a more feature complete library please take a look at Alamofire.
Usage
Throughout this documentation req
is used as an instance of Agent.
HTTP Verbs
The Agent API is simple and easy to use. Simply use Agent.<verb>(url)
and
you're good to go.
Overloading
It's possible to perform an entire request with a single call. Supply the required parameters when first creating the request. There are usually multiple degrees of overloading.
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)
It's possible to omit most overloaded parameters such as headers
.
Method Chaining
Every Agent method returns the Agent itself, therefore it is possible to write more expressive code.
Agent.post("http://example.com")
.send([ "Key": "Value" ])
.end({ (response: NSHTTPURLResponse?, data: AnyObject?, error: NSError?) -> Void in
// react to the result of your request
}
)
Response Closure
One of the features that makes Agent is the response closure, instead of setting up a delegate for every HTTP request you have to make. You can simply react to the response in a closure.
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"]!)
}
Verbs
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
})
Methods
send(data: AnyObject) -> Agent
Will JSON serialize any data
and send it along as the HTTP body. Also
implicitly sets the Content-Type
header to application/json
.
set(header: String, value: String) -> Agent
Sets the HTTP header
to value
.
end(done: Response) -> Agent
Will start the request and call done
when it's complete.
- If the request was successful then
$0
will be anNSHTTPURLResponse
. - If the response had any data,
$1
will be anAnyObject
that you can type cast to either anArray
orDictionary
. - If there was an error then
$2
will be anNSErrror
that you can inspect for more information.
NSMutableURLRequest
You can always access the underlying NSMutableURLRequest
using req.request
.
Contributing
We're happy to receive any pull requests. Right now we're working hard on a number of features as seen below.
- Complete asynchronous tests
- Plugins
- Specialized agents (to handle default headers and such)
Any issue is appreciated.
License
MIT
*Note that all licence references and agreements mentioned in the agent README section above
are relevant to that project's source code only.