iOS network-afnetworking basic use, file download, upload
Last Update:2016-01-19
Source: Internet
Author: User
<span id="Label3"></p><p><p><span style="font-size: 14px;">Send a GET request</span></p></p><pre><span style="font-size: 14px;">-(<span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>)<span style="color: #0000ff;"><span style="color: #0000ff;">Get</span></span><span style="color: #000000;"><span style="color: #000000;">{ </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">1. Create a Session Manager</span></span>Afhttpsessionmanager *manager =<span style="color: #000000;"><span style="color: #000000;">[afhttpsessionmanager manager]; Nsdictionary</span></span>*DICTM =<span style="color: #000000;"><span style="color: #000000;"> @{ </span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">username</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">520it</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">, </span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">pwd</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">520it</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">, </span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">type</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">JSON</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;"> }; </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">2. Sending the request</span></span> <span style="color: #008000;"><span style="color: #008000;">/*</span></span><span style="color: #008000;"><span style="color: #008000;">first parameter: a part of the request path (nsstring) before:</span></span><span style="color: #008000; text-decoration: underline;"><span style="color: #008000; text-decoration: underline;">http://120.25.226.186</span></span><span style="color: #008000;"><span style="color: #008000;">: 32812/login?username=123&pwd=123&type=json protocol header + host address + interface name +?+ parameter 1& parameter 2 now:</span></span><span style="color: #008000; text-decoration: underline;"><span style="color: #008000; text-decoration: underline;">http://120.25.226.186</span></span><span style="color: #008000;"><span style="color: #008000;">: 32812/login protocol header + host address + interface name the second parameter: parameter, which passes the third argument in a dictionary: progress Progress pass nil fourth Parameter: callback after success success Task: Request Task Responseobject: response Body Task.response: response header information Fifth Parameter: callback task after failure failure: request task ER Ror: error Message</span></span><span style="color: #008000;"><span style="color: #008000;">*/</span></span><span style="color: #000000;"><span style="color: #000000;">[manager GET:</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">Http://120.25.226.186:32812/login</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>PARAMETERS:DICTM progress:nil success:^ (nsurlsessiondatatask * _nonnull task,<span style="color: #0000ff;"><span style="color: #0000ff;">ID</span></span><span style="color: #000000;"><span style="color: #000000;">_nullable Responseobject) {NSLog (</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">successful request---%@--%@</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>, Responseobject,[responseobject<span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span><span style="color: #000000;"><span style="color: #000000;">]); } failure:</span></span>^ (nsurlsessiondatatask * _nullable task, Nserror *<span style="color: #000000;"><span style="color: #000000;">_nonnull Error) {NSLog (</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">Request failed----%@</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">, error); }];}</span></span></span></pre><p><p><span style="font-size: 14px;">Send a POST request</span></p></p><pre><span style="font-size: 14px;">-(<span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">) post{</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">1. Create a Session Manager</span></span>Afhttpsessionmanager *manager =<span style="color: #000000;"><span style="color: #000000;">[afhttpsessionmanager manager]; Nsdictionary</span></span>*DICTM =<span style="color: #000000;"><span style="color: #000000;"> @{ </span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">username</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">520it</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">, </span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">pwd</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">520</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">, </span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">type</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">JSON</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;"> }; </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">2. Sending the request</span></span> <span style="color: #008000;"><span style="color: #008000;">/*</span></span><span style="color: #008000;"><span style="color: #008000;">first parameter: a part of the request path (nsstring) before:</span></span><span style="color: #008000; text-decoration: underline;"><span style="color: #008000; text-decoration: underline;">http://120.25.226.186</span></span><span style="color: #008000;"><span style="color: #008000;">: 32812/login?username=123&pwd=123&type=json protocol header + host address + interface name +?+ parameter 1& parameter 2 now:</span></span><span style="color: #008000; text-decoration: underline;"><span style="color: #008000; text-decoration: underline;">http://120.25.226.186</span></span><span style="color: #008000;"><span style="color: #008000;">: 32812/login protocol header + host address + interface name the second parameter: parameter, The third parameter is passed in a dictionary: progress Progress pass nil fourth parameter: success after successful callback Task: request T Ask Responseobject: response Body task.response: response header information Fifth Parameter: callback task after failure failure: request task error: error message</span></span><span style="color: #008000;"><span style="color: #008000;">*/</span></span><span style="color: #000000;"><span style="color: #000000;">[manager POST:</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">Http://120.25.226.186:32812/login</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>PARAMETERS:DICTM progress:nil success:^ (nsurlsessiondatatask * _nonnull task,<span style="color: #0000ff;"><span style="color: #0000ff;">ID</span></span><span style="color: #000000;"><span style="color: #000000;">_nullable Responseobject) {NSLog (</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">successful request---%@--%@</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>, Responseobject,[responseobject<span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span><span style="color: #000000;"><span style="color: #000000;">]); } failure:</span></span>^ (nsurlsessiondatatask * _nullable task, Nserror *<span style="color: #000000;"><span style="color: #000000;">_nonnull Error) {NSLog (</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">Request failed----%@</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">, error); }];}</span></span></span></pre><p><p><span style="font-size: 14px;">File download</span></p></p><pre><span style="font-size: 14px;"><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">1. Create a Session Manager</span></span>Afhttpsessionmanager *manager =<span style="color: #000000;"><span style="color: #000000;">[afhttpsessionmanager manager]; Nsurlrequest</span></span>*request = [nsurlrequest Requestwithurl:[nsurl urlwithstring:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">Http://120.25.226.186:32812/resources/images/minion_01.png</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">]]; </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">2. Create a download task</span></span> <span style="color: #008000;"><span style="color: #008000;">/*</span></span><span style="color: #008000;"><span style="color: #008000;">first Parameter: Request object second Parameter: Progress progress callback downloadprogress.completedunitcount: the size that has been completed Downloadprogress.tot Alunitcount: Total File size third parameter: destination Auto-complete file cut operation return value: the file should be clipped to targetpath: temp path tmp nsurl respons E: Response header Fourth parameter: completionhandler Download complete callback filePath: true Path = = The return value of the third parameter error: wrong message</span></span><span style="color: #008000;"><span style="color: #008000;">*/</span></span><span style="color: #000000;"><span style="color: #000000;">Nsurlsessiondownloadtask</span></span>*downlaodtask = [manager downloadtaskwithrequest:request progress:^ (nsprogress *<span style="color: #000000;"><span style="color: #000000;">_nonnull Downloadprogress) { </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Calculate the download progress of a file</span></span>NSLog (<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">%f</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>,<span style="color: #800080;"><span style="color: #800080;">1.0</span></span>* downloadprogress.completedunitcount/<span style="color: #000000;"><span style="color: #000000;">downloadprogress.totalunitcount); } destination:</span></span>^nsurl * _nonnull (nsurl * _nonnull targetpath, Nsurlresponse *<span style="color: #000000;"><span style="color: #000000;">_nonnull Response) { </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">full path of the file</span></span>NSString *fullpath =<span style="color: #000000;"><span style="color: #000000;">[[nssearchpathfordirectoriesindomains (nscachesdirectory, nsuserdomainmask, YES) lastobject] stringByAppendingPathComponent:response.suggestedFilename]; Nsurl</span></span>*fileurl =<span style="color: #000000;"><span style="color: #000000;">[nsurl fileurlwithpath:fullpath]; NSLog (</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">%@\n%@</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">, targetpath,fullpath); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span><span style="color: #000000;"><span style="color: #000000;">fileUrl; } completionhandler:</span></span>^ (nsurlresponse * _nonnull response, nsurl * _nullable filePath, Nserror *<span style="color: #000000;"><span style="color: #000000;">_nullable Error) {NSLog (</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">%@</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">, filePath); }]; </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">3. Execute Task</span></span>[downlaodtask resume];</span></pre><p><p><span style="font-size: 14px;">File Upload</span></p></p><pre><span style="font-size: 14px;">-(<span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">) uplaod{</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">1. Create a Session Manager</span></span>Afhttpsessionmanager *manager =<span style="color: #000000;"><span style="color: #000000;">[afhttpsessionmanager manager]; Nsdictionary</span></span>*DICTM =<span style="color: #000000;"><span style="color: #000000;"> @{ </span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">username</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">123</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;"> }; </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">2. Uploading Files</span></span> <span style="color: #008000;"><span style="color: #008000;">/*</span></span><span style="color: #008000;"><span style="color: #008000;">first Parameter: request path second parameter: Non-file parameter, pass the third parameter in the Dictionary: constructingbodywithblock stitching data File parameter fourth Parameter: progress progress callback Fifth Parameter: success successful callback sixth Parameter: failure failure callback</span></span><span style="color: #008000;"><span style="color: #008000;">*/</span></span><span style="color: #000000;"><span style="color: #000000;">[manager POST:</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">Http://120.25.226.186:32812/upload</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>PARAMETERS:DICTM constructingbodywithblock:^ (<span style="color: #0000ff;"><span style="color: #0000ff;">ID</span></span><AFMultipartFormData><span style="color: #000000;"><span style="color: #000000;">_nonnull FormData) {UIImage</span></span>*image = [UIImage imagenamed:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">snip20160118_860</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">]; NSData</span></span>*imagedata =<span style="color: #000000;"><span style="color: #000000;">uiimagepngrepresentation (image); </span></span><span style="color: #008000;"><span style="color: #008000;">/*</span></span><span style="color: #008000;"><span style="color: #008000;">first Parameter: binary data of the file to be uploaded the second parameter: the parameter name is specified here as file third Parameter: the saved name the fourth Parameter: data type of the MimeType file </span></span><span style="color: #008000;"><span style="color: #008000;">*/</span></span><span style="color: #000000;"><span style="color: #000000;">[formData appendpartwithfiledata:imagedata name:</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">file</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>FileName:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">12345.png</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>MimeType:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">Image/png</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">]; } progress:</span></span>^ (nsprogress *<span style="color: #000000;"><span style="color: #000000;">_nonnull Uploadprogress) {NSLog (</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">%f</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>,<span style="color: #800080;"><span style="color: #800080;">1.0</span></span>*uploadprogress.completedunitcount/<span style="color: #000000;"><span style="color: #000000;">uploadprogress.totalunitcount); } success:</span></span>^ (nsurlsessiondatatask * _nonnull task,<span style="color: #0000ff;"><span style="color: #0000ff;">ID</span></span><span style="color: #000000;"><span style="color: #000000;">_nullable Responseobject) {NSLog (</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">successful request---%@</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">, responseobject); } failure:</span></span>^ (nsurlsessiondatatask * _nullable task, Nserror *<span style="color: #000000;"><span style="color: #000000;">_nonnull Error) {NSLog (</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">Request failed---%@</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">, error); }];}</span></span></span></pre><pre><span style="font-size: 14px;">-(<span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">) uplaod2{</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">1. Create a Session Manager</span></span>Afhttpsessionmanager *manager =<span style="color: #000000;"><span style="color: #000000;">[afhttpsessionmanager manager]; Nsdictionary</span></span>*DICTM =<span style="color: #000000;"><span style="color: #000000;"> @{ </span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">username</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">123</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;"> }; </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">2. Uploading Files</span></span> <span style="color: #008000;"><span style="color: #008000;">/*</span></span><span style="color: #008000;"><span style="color: #008000;">first Parameter: request path second parameter: Non-file parameter, pass the third parameter in the Dictionary: constructingbodywithblock stitching data File parameter fourth Parameter: progress progress Callback first Five Parameters: success successful callback sixth Parameter: failure failure callback</span></span><span style="color: #008000;"><span style="color: #008000;">*/</span></span><span style="color: #000000;"><span style="color: #000000;">[manager POST:</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">Http://120.25.226.186:32812/upload</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>PARAMETERS:DICTM constructingbodywithblock:^ (<span style="color: #0000ff;"><span style="color: #0000ff;">ID</span></span><AFMultipartFormData><span style="color: #000000;"><span style="color: #000000;">_nonnull FormData) {nsurl</span></span>*fileurl = [nsurl Fileurlwithpath:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">/users/xiaomage/desktop/snip20160118_860.png</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">]; </span></span><span style="color: #008000;"><span style="color: #008000;">/*</span></span><span style="color: #008000;"><span style="color: #008000;">first parameter: The URL path of the file the second parameter: the parameter name is specified here as the third Parameter: saved name the fourth Parameter: data type of the MimeType file </span></span><span style="color: #008000;"><span style="color: #008000;">*/</span></span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">[formData appendpartwithfileurl:fileurl name:@ "file" filename:@ "1.png" mimetype:@ "image/png" error:nil]; </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">a handy way to use Snip20160118_860.png as a file name</span></span>[formData Appendpartwithfileurl:fileurl name:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">file</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">error:nil]; } progress:</span></span>^ (nsprogress *<span style="color: #000000;"><span style="color: #000000;">_nonnull Uploadprogress) {NSLog (</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">%f</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>,<span style="color: #800080;"><span style="color: #800080;">1.0</span></span>*uploadprogress.completedunitcount/<span style="color: #000000;"><span style="color: #000000;">uploadprogress.totalunitcount); } success:</span></span>^ (nsurlsessiondatatask * _nonnull task,<span style="color: #0000ff;"><span style="color: #0000ff;">ID</span></span><span style="color: #000000;"><span style="color: #000000;">_nullable Responseobject) {NSLog (</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">successful request---%@</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">, responseobject); } failure:</span></span>^ (nsurlsessiondatatask * _nullable task, Nserror *<span style="color: #000000;"><span style="color: #000000;">_nonnull Error) {NSLog (</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">Request failed---%@</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">, error); }];}</span></span></span></pre><p><p></p></p><p><p>iOS network-afnetworking basic use, file download, upload</p></p></span>