An overview of the classes
Main classes
![](https://i-blog.csdnimg.cn/blog_migrate/33f55b8831ae98c2209dbc2539eac119.png)
ASIHTTPRequest
Handles the basics of communicating with webservers, including downloading and uploading data, authentication, cookies and progress tracking.
![](https://i-blog.csdnimg.cn/blog_migrate/5bf7cd068c30232d84ae35f1cffb73d0.png)
ASIFormDataRequest
A subclass of ASIHTTPRequest that handles x-www-form-urlencoded and 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.
![](https://i-blog.csdnimg.cn/blog_migrate/50a4bc292eb3bedbe5c3ebd9827a8477.png)
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.
![](https://i-blog.csdnimg.cn/blog_migrate/7de1adc3f746953961625276b93fb16b.png)
ASIDownloadCache
This class allows ASIHTTPRequest to transparently cache responses from webservers. Requests can be configured to use cached content when remote data has not been updated since it was last downloaded, when the network is available, or whenever cached data is available.
If you do not wish to use caching, or have written your own cache, you do not need to include this class.
Support classes
You will not generally need to use these classes directly, they are used behind the scenes by the main classes above.
![](https://i-blog.csdnimg.cn/blog_migrate/a00b17a061d47ae204bfd7d883da94bd.png)
ASIInputStream
A helper class used by ASIHTTPRequest when uploading data. You must include this class in your project to use ASIHTTPRequest.
![](https://i-blog.csdnimg.cn/blog_migrate/3e35d25c01e8f00c2023fa7fdc0ef31a.png)
ASIDataDecompressor
A helper class used by ASIHTTPRequest to inflate (decompress) gzipped content. You must include this class in your project to use ASIHTTPRequest.
![](https://i-blog.csdnimg.cn/blog_migrate/71b90427ff8c8b27575c6953e98bf2c7.png)
ASIDataCompressor
A helper class used by ASIHTTPRequest to deflate (compress) content. You must include this class in your project to use ASIHTTPRequest.
![](https://i-blog.csdnimg.cn/blog_migrate/3941839270a393f4ddd52b9a45cbd123.png)
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.
![](https://i-blog.csdnimg.cn/blog_migrate/0c3a1a7ad60cec6b843027548bb1689c.png)
Reachability
This class was written by Andrew Donoho as a drop-in replacement for Apple’s Reachability class. It allows ASIHTTPRequest to be notified when the network connection changes from WWAN to WiFi, or vice-versa. You must include this class in iPhone projects, but not in Mac projects.
You may find this class useful in detecting the status of network availability in your own applications - find out more.
Protocols and configuration
You must include all these files in your project.
![](https://i-blog.csdnimg.cn/blog_migrate/0ae596a96f3d14d1bcf7bb2070d1aca0.png)
ASIHTTPRequestDelegate
This protocol specifies the method that a delegate of an ASIHTTPRequest may implement. All these methods are optional.
![](https://i-blog.csdnimg.cn/blog_migrate/132865bddc078ac8fc9df18041de0625.png)
ASIProgressDelegate
This protocol lists the methods that an uploadProgressDelegate or downloadProgressDelegate may implement. All these methods are optional.
![](https://i-blog.csdnimg.cn/blog_migrate/3a073b78e9d9a31defa8791feb2742e7.png)
ASICacheDelegate
This protocol is used to specify the methods that a download cache must implement. If you want to write your own download cache, make sure it implements the required methods in this protocol.
![](https://i-blog.csdnimg.cn/blog_migrate/ec82b225f871a508555a7592748ba5db.png)
ASIHTTPRequestConfig.h
This file defines global configuration options that are set at compile time. Use the options in this file to turn on various debugging options that print information about what a request is doing to the console. Don't forget to turn these off in shipping applications!