First, the creation of afnetworking
New project, named Afndemo
Second, import AFNetworking.h
afnetworking File Download: https://github.com/AFNetworking/AFNetworking
Import AFNetworking.h in VIEWCONTROLLER.M
#import " ViewController.h " #import " AFNetworking.h "
1. Create a download task (the example given on the official website)
Nsurlsessionconfiguration *configuration =[Nsurlsessionconfiguration defaultsessionconfiguration]; Afurlsessionmanager*manager =[[Afurlsessionmanager alloc] initwithsessionconfiguration:configuration]; Nsurl*url = [Nsurl urlwithstring:@"Http://example.com/download.zip"]; Nsurlrequest*request =[Nsurlrequest Requestwithurl:url]; Nsurlsessiondownloadtask*downloadtask = [Manager downloadtaskwithrequest:request progress:nil Destination:^nsurl * (Nsurl *targetPath, Nsurlresponse *response) {Nsurl*documentsdirectoryurl =[[Nsfilemanager Defaultmanager] Urlfordirectory:nsdocumentdirectory indomain:nsuserdomainmask Appropriateforurl:nil Create:no Error:nil]; return[Documentsdirectoryurl urlbyappendingpathcomponent:[response suggestedfilename];} Completionhandler:^ (Nsurlresponse *response, Nsurl *filepath, Nserror *error) {NSLog (@"File downloaded to:%@", FilePath);}]; [Downloadtask resume];
2. Create an upload task
Nsurlsessionconfiguration *configuration =[Nsurlsessionconfiguration defaultsessionconfiguration]; Afurlsessionmanager*manager =[[Afurlsessionmanager alloc] initwithsessionconfiguration:configuration]; Nsurl*url = [Nsurl urlwithstring:@"Http://example.com/upload"]; Nsurlrequest*request =[Nsurlrequest Requestwithurl:url]; Nsurl*filepath = [Nsurl Fileurlwithpath:@"File://path/to/image.png"]; Nsurlsessionuploadtask*uploadtask = [Manager uploadtaskwithrequest:request fromfile:filepath Progress:nil completionhandler:^ ( Nsurlresponse *response,IDResponseobject, Nserror *error) { if(Error) {NSLog (@"Error:%@", error); } Else{NSLog (@"Success:%@%@", response, Responseobject); }}]; [Uploadtask resume];
3. Send multiple requests
Nsmutableurlrequest *request = [[Afhttprequestserializer serializer] Multipartformrequestwithmethod:@"POST"URLString:@"Http://example.com/upload"Parameters:nil constructingbodywithblock:^ (ID<AFMultipartFormData>formData) {[FormData appendpartwithfileurl:[nsurl Fileurlwithpath:@"file://path/to/image.jpg"] Name:@"file"FileName:@"filename.jpg"MimeType:@"Image/jpeg"Error:nil]; } Error:nil]; Afurlsessionmanager*manager =[[Afurlsessionmanager alloc] Initwithsessionconfiguration:[nsurlsessionconfiguration Defaultsessionconfiguration]]; Nsurlsessionuploadtask*Uploadtask;uploadtask=[Manager uploadtaskwithstreamedrequest:request Progress:^ (Nsprogress *_nonnull uploadprogress) { //This isn't called back on the main queue. //You is responsible for dispatching to the main queue for UI updatesDispatch_async (Dispatch_get_main_queue (), ^{ //Update The Progress View[Progressview setProgress:uploadProgress.fractionCompleted]; }); } Completionhandler:^ (Nsurlresponse * _nonnull response,ID_nullable Responseobject, Nserror *_nullable Error) { if(Error) {NSLog (@"Error:%@", error); } Else{NSLog (@"%@ %@", response, Responseobject); } }]; [Uploadtask resume];
4. Access to Data
Nsurlsessionconfiguration *configuration =[Nsurlsessionconfiguration defaultsessionconfiguration]; Afurlsessionmanager*manager =[[Afurlsessionmanager alloc] initwithsessionconfiguration:configuration]; Nsurl*url = [Nsurl urlwithstring:@"Http://httpbin.org/get"]; Nsurlrequest*request =[Nsurlrequest Requestwithurl:url]; Nsurlsessiondatatask*datatask = [Manager datataskwithrequest:request completionhandler:^ (Nsurlresponse *response,IDResponseobject, Nserror *error) { if(Error) {NSLog (@"Error:%@", error); } Else{NSLog (@"%@ %@", response, Responseobject); }}]; [Datatask resume];
5. Get JSON data via URL
NSString*STR = [NSString stringWithFormat:@"http://192.168.199.245:88/json/b"]; Nsurl*url =[Nsurl Urlwithstring:str]; Nsurlrequest*request =[Nsurlrequest Requestwithurl:url]; Afhttprequestoperation*operation =[[Afhttprequestoperation alloc]initwithrequest:request]; [Operation Setcompletionblockwithsuccess:^ (Afhttprequestoperation *operation,IDresponseobject) {NSString*html =[[NSString alloc] Initwithdata:responseobject encoding:nsutf8stringencoding]; NSLog (@"json:%@", HTML); } Failure:^ (Afhttprequestoperation *operation, Nserror *error) {NSLog (@"error:%@", error); }]; [[Nsoperationqueue Mainqueue] addoperation:operation];
iOS Basics (30) Use of--afnetworking