Support ASIHTTPRequest - buy Space Harvest - my new real-time strategy game for iPod Touch & iPhone!

All-Seeing Interactive Logo

ASIHTTPRequest documentation

Last updated: 2nd March 2010



What is ASIHTTPRequest?

ASIHTTPRequest is an easy to use wrapper around the CFNetwork API that makes some of the more tedious aspects of communicating with web servers easier. It is written in Objective-C and works in both Mac OS X and iPhone applications.

It is suitable performing basic HTTP requests and interacting with REST-based services (GET / POST / PUT / DELETE). The included ASIFormDataRequest subclass makes it easy to submit POST data and files using multipart/form-data.

It provides:

ASIHTTPRequest comes with a example applications for Mac and iPhone that demonstrate some of the features.

ASIHTTPRequest is partly based on code from Apple's ImageClient code samples, so if it doesn't meet your needs, take a look at their CFNetwork examples for more.

ASIHTTPRequest is compatible with Mac OS 10.5 or later, and iPhone OS 2.2.1 or later.


An overview of the classes

ASIHTTPRequest

Handles the basics of communicating with webservers, including downloading and uploading data, authentication, cookies and progress tracking.

ASIInputStream

A helper class used by ASIHTTPRequest when uploading data. You must include this class in your project to use ASIHTTPRequest.

ASIAuthenticationDialog

This class allows ASIHTTPRequest to present a login dialog when connecting to webservers that require authentication, and authenticating proxies. It is required in all projects targeting iPhone OS, though not for Mac OS projects.

Reachability

This class from Apple allows ASIHTTPRequest to be notified when the network connection changes from WWAN to WiFi, or vice-versa. You need to include this class in iPhone projects, but not in Mac projects.


As of v1.5, ASIHTTPRequest supports Reachability 2.0 (for apps targeting iPhone OS 3.x or later), as well as reachability 1.5 (for apps targeting 2.2.1). See the setup instructions for details on how to specify which version to use.


More information on the Reachability class is available here

ASIFormDataRequest

A subclass of ASIHTTPRequest that handles multipart/form-data posts. It makes POSTing data and files easy, but you do not need to add this to your project if you want to manage POST data yourself or don't need to POST data at all.

ASINetworkQueue

A subclass of NSOperationQueue that may be used to track progress across multiple requests. You don't need this if you only need to perform one request at a time, or prefer to track the progress of each request individually.

ASINSStringAdditions

A helper category for NSString that encodes and decodes the values of cookies. You don't need to include this in your own projects unless you need to read the url-decoded value of a cookie, or create cookies manually.