iOS development-"ASI" usage examples

Source: Internet
Author: User
<span id="Label3"></p>Asi<pre class="prettyprint"><code class=" hljs objectivec"><span class="hljs-preprocessor"><span class="hljs-preprocessor">#import <span class="hljs-title">"ViewController.h"</span> </span></span><span class="hljs-preprocessor"><span class="hljs-preprocessor">#import <span class="hljs-title">"ASIHTTPRequest.h"</span> </span></span><span class="hljs-class"><span class="hljs-class"> <span class="hljs-keyword">@interface</span> <span class="hljs-title">hmviewcontroller</span> () <<span class="hljs-title">asihttprequestdelegate</span>></span></span><span class="hljs-keyword"><span class="hljs-keyword">@property</span></span>(<span class="hljs-keyword"><span class="hljs-keyword">nonatomic</span></span>,<span class="hljs-keyword"><span class="hljs-keyword">Strong</span></span>) ASIHTTPRequest *request;<span class="hljs-keyword"><span class="hljs-keyword">@end</span></span><span class="hljs-class"><span class="hljs-class"> <span class="hljs-keyword">@implementation</span> <span class="hljs-title">hmviewcontroller</span> </span></span>- (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) viewdidload{[<span class="hljs-keyword"><span class="hljs-keyword">Super</span></span>viewdidload];<span class="hljs-comment"><span class="hljs-comment">additional setup after loading the view, typically from a nib.</span></span>}- (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) touchesbegan: (nsset *) touches withevent: (uievent *) event{[<span class="hljs-keyword"><span class="hljs-keyword"></span> self</span>asynget];}</code></pre>Send Request<pre class="prettyprint"><code class=" hljs java">#pragma mark-asihttprequestdelegate<span class="hljs-javadoc"><span class="hljs-javadoc">/** * 1. Start sending request</span> */</span>- (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) requeststarted: (asihttprequest *) Request{NSLog (@<span class="hljs-string"><span class="hljs-string">"requeststarted"</span></span>);}<span class="hljs-javadoc"><span class="hljs-javadoc">/** * 2. Response header information received from the server</span> */</span>- (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>Request: (asihttprequest *) Request didreceiveresponseheaders: (nsdictionary *) Responseheaders{NSLog (@<span class="hljs-string"><span class="hljs-string">"didreceiveresponseheaders"</span></span>);}<span class="hljs-javadoc"><span class="hljs-javadoc">/** * 3. Entity data received from the server (specific Data) * As long as this proxy method is implemented, responsedata\responsestring has no value */</span></span><span class="hljs-comment"><span class="hljs-comment">//-(void) request: (asihttprequest *) request Didreceivedata: (nsdata *) data</span></span><span class="hljs-comment"><span class="hljs-comment">//{</span></span><span class="hljs-comment"><span class="hljs-comment">//NSLog (@ "didreceivedata-%@", data);</span></span><span class="hljs-comment"><span class="hljs-comment">//}</span></span><span class="hljs-javadoc"><span class="hljs-javadoc">/** * 4. Server response data received</span> */</span>- (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) requestfinished: (asihttprequest *) Request{NSLog (@<span class="hljs-string"><span class="hljs-string">"requestfinished--%@"</span></span>, [request responsedata]);}<span class="hljs-javadoc"><span class="hljs-javadoc">/** * 5. Request failed</span> */</span>- (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) requestfailed: (asihttprequest *) Request{NSLog (@<span class="hljs-string"><span class="hljs-string">"requestfailed"</span></span>);}</code></pre>Send an asynchronous GET request<pre class="prettyprint"><pre class="prettyprint"><code class=" hljs java"><span class="hljs-javadoc">/** * 异步的GET请求 */</span>- (<span class="hljs-keyword">void</span>)asynGet{ <span class="hljs-comment">// 1.URL</span> NSURL *url = [NSURL URLWithString:@<span class="hljs-string">"http://localhost:8080/MJServer/video"</span>]; <span class="hljs-comment">// 2.创建一个请求对象</span> ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; <span class="hljs-number">15</span><span class="hljs-comment">// 15秒后服务器还没有响应,就算超时</span> <span class="hljs-comment">// 设置代理</span> request.delegate = self; <span class="hljs-comment">// 3.开始请求</span> [request startAsynchronous]; self.request = request;}- (<span class="hljs-keyword">void</span>)dealloc{ <span class="hljs-comment">// 这句代码为了防止:控制器销毁了,request还回来调用控制器的代理方法,引发野指针</span> [self.request clearDelegatesAndCancel];}</code></pre></pre>Send a synchronous GET request<pre class="prettyprint"><code class=" hljs java"><span class="hljs-javadoc"><span class="hljs-javadoc">/** * Synchronous GET request</span> */</span>- (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) synget{<span class="hljs-comment"><span class="hljs-comment">//1.URL</span></span>Nsurl *url = [nsurl urlwithstring:@<span class="hljs-string"><span class="hljs-string">"http://localhost:8080/Server/video"</span></span>];<span class="hljs-comment"><span class="hljs-comment">//2. Create a Request object</span></span>ASIHTTPRequest *request = [asihttprequest requestwithurl:url]; Request.timeoutseconds =<span class="hljs-number"><span class="hljs-number"></span> the</span>;<span class="hljs-comment"><span class="hljs-comment">///15 seconds after the server has not responded, even if timed out</span></span> <span class="hljs-comment"><span class="hljs-comment">//3. start the request (this line of code will card the master, waiting for the server to give the Data)</span></span>[request startsynchronous];<span class="hljs-comment"><span class="hljs-comment">//4. Request Complete</span></span>Nserror *error = [request error];<span class="hljs-keyword"><span class="hljs-keyword">if</span></span>(error) {NSLog (@<span class="hljs-string"><span class="hljs-string">"request failed---%@"</span></span>, error); }<span class="hljs-keyword"><span class="hljs-keyword">Else</span></span>{nsdata *data = [request responsedata];<span class="hljs-comment"><span class="hljs-comment">//nsstring *str = [[nsstring alloc] initwithdata:data encoding:nsutf8stringencoding];</span></span> <span class="hljs-comment"><span class="hljs-comment">//nsstring *str = [request responsestring];</span></span>Nsdictionary *dict = [nsjsonserialization jsonobjectwithdata:data options:nsjsonreadingmutableleaves error:nil]; NSLog (@<span class="hljs-string"><span class="hljs-string">"request succeeded---%@"</span></span>, dict); }}</code></pre>Block request to listen for ASI<pre class="prettyprint"><code class=" hljs objectivec">Request to listen for ASI<span class="hljs-number"><span class="hljs-number">1.</span></span>Become an agent, abide by the Asihttprequestdelegate protocol, implement the Proxy method in the protocol request<span class="hljs-variable"><span class="hljs-variable">. Delegate</span></span>=<span class="hljs-keyword"><span class="hljs-keyword"></span> self</span>; - (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) requeststarted: (asihttprequest *) request; - (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>Request: (asihttprequest *) Request Didreceiveresponseheaders: (<span class="hljs-built_in"><span class="hljs-built_in">nsdictionary</span></span>*) responseheaders; - (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>Request: (asihttprequest *) Request Didreceivedata: (nsdata *) data; - (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) requestfinished: (asihttprequest *) request; - (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) requestfailed: (asihttprequest *) request;<span class="hljs-number"><span class="hljs-number">2.</span></span>Become an agent, do not comply with the Asihttprequestdelegate protocol, Customize the Proxy method request<span class="hljs-variable"><span class="hljs-variable">. Delegate</span></span>=<span class="hljs-keyword"><span class="hljs-keyword"></span> self</span>; [request setdidstartselector:<span class="hljs-keyword"><span class="hljs-keyword">@selector</span></span>(start:)]; [request setdidfinishselector:<span class="hljs-keyword"><span class="hljs-keyword">@selector</span></span>(finish:)];<span class="hljs-number"><span class="hljs-number">3.</span></span>Set Block [request setstartedblock:^{<span class="hljs-built_in"><span class="hljs-built_in">NSLog</span></span>(@<span class="hljs-string"><span class="hljs-string">"setstartedblock"</span></span>); }]; [request setheadersreceivedblock:^ (<span class="hljs-built_in"><span class="hljs-built_in">nsdictionary</span></span>*responseheaders) {<span class="hljs-built_in"><span class="hljs-built_in">NSLog</span></span>(@<span class="hljs-string"><span class="hljs-string">"setheadersreceivedblock--%@"</span></span>, responseheaders); }]; [request setdatareceivedblock:^ (nsdata *data) {<span class="hljs-built_in"><span class="hljs-built_in">NSLog</span></span>(@<span class="hljs-string"><span class="hljs-string">"setdatareceivedblock--%@"</span></span>, data); }]; [request setcompletionblock:^{<span class="hljs-built_in"><span class="hljs-built_in">NSLog</span></span>(@<span class="hljs-string"><span class="hljs-string">"setcompletionblock"</span></span>); }]; [request setfailedblock:^{<span class="hljs-built_in"><span class="hljs-built_in">NSLog</span></span>(@<span class="hljs-string"><span class="hljs-string">"setfailedblock"</span></span>); }];</code></pre><pre class="prettyprint"><code class=" hljs objectivec">- (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) viewdidload{[<span class="hljs-keyword"><span class="hljs-keyword">Super</span></span>viewdidload];<span class="hljs-comment"><span class="hljs-comment">additional setup after loading the view, typically from a nib.</span></span>}- (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) touchesbegan: (nsset *) touches withevent: (uievent *) event{<span class="hljs-comment"><span class="hljs-comment">//1.URL</span></span> <span class="hljs-built_in"><span class="hljs-built_in">Nsurl</span></span>*url = [<span class="hljs-built_in"><span class="hljs-built_in">Nsurl</span></span>urlwithstring:@<span class="hljs-string"><span class="hljs-string">"http://localhost:8080/MJServer/video"</span></span>];<span class="hljs-comment"><span class="hljs-comment">//2. Create a Request object</span></span>ASIHTTPRequest *request = [asihttprequest requestwithurl:url];<span class="hljs-comment"><span class="hljs-comment">//3. start the request</span></span>[request startasynchronous];<span class="hljs-comment"><span class="hljs-comment">//4. Setting the Listening method</span></span>Request<span class="hljs-variable"><span class="hljs-variable">. Delegate</span></span>=<span class="hljs-keyword"><span class="hljs-keyword"></span> self</span>; [request setdidstartselector:<span class="hljs-keyword"><span class="hljs-keyword">@selector</span></span>(start:)]; [request setdidfinishselector:<span class="hljs-keyword"><span class="hljs-keyword">@selector</span></span>(finish:)];} - (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) start: (asihttprequest *) request{<span class="hljs-built_in"><span class="hljs-built_in">NSLog</span></span>(@<span class="hljs-string"><span class="hljs-string">"start--%@"</span></span>, request);} - (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) Finish: (asihttprequest *) Request {<span class="hljs-built_in"><span class="hljs-built_in">NSLog</span></span>(@<span class="hljs-string"><span class="hljs-string">"finish--%d%@%@"</span></span>, [request responsestatuscode], [request responsestatusmessage], [request responsedata]);} - (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) asyncblock{<span class="hljs-comment"><span class="hljs-comment">//1.URL</span></span> <span class="hljs-built_in"><span class="hljs-built_in">Nsurl</span></span>*url = [<span class="hljs-built_in"><span class="hljs-built_in">Nsurl</span></span>urlwithstring:@<span class="hljs-string"><span class="hljs-string">"http://localhost:8080/Server/video"</span></span>];<span class="hljs-comment"><span class="hljs-comment">//2. Create a Request object</span></span>ASIHTTPRequest *request = [asihttprequest requestwithurl:url];<span class="hljs-comment"><span class="hljs-comment">if both block and proxy methods are set, the block and proxy methods are called during the request</span> ,</span> <span class="hljs-comment"><span class="hljs-comment">//general Invocation Order: Proxy method > block</span></span> <span class="hljs-comment"><span class="hljs-comment">//request.delegate = self;</span></span> <span class="hljs-comment"><span class="hljs-comment">//3. start the request</span></span>[request startasynchronous];<span class="hljs-comment"><span class="hljs-comment">//4. Set Block monitoring</span></span>[request setstartedblock:^{<span class="hljs-built_in"><span class="hljs-built_in">NSLog</span></span>(@<span class="hljs-string"><span class="hljs-string">"setstartedblock"</span></span>); }]; [request setheadersreceivedblock:^ (<span class="hljs-built_in"><span class="hljs-built_in">nsdictionary</span></span>*responseheaders) {<span class="hljs-built_in"><span class="hljs-built_in">NSLog</span></span>(@<span class="hljs-string"><span class="hljs-string">"setheadersreceivedblock--%@"</span></span>, responseheaders); }]; [request setdatareceivedblock:^ (nsdata *data) {<span class="hljs-built_in"><span class="hljs-built_in">NSLog</span></span>(@<span class="hljs-string"><span class="hljs-string">"setdatareceivedblock--%@"</span></span>, data); }]; [request setcompletionblock:^{<span class="hljs-built_in"><span class="hljs-built_in">NSLog</span></span>(@<span class="hljs-string"><span class="hljs-string">"setcompletionblock"</span></span>); }]; [request setfailedblock:^{<span class="hljs-built_in"><span class="hljs-built_in">NSLog</span></span>(@<span class="hljs-string"><span class="hljs-string">"setfailedblock"</span></span>); }];}</code></pre>File download<pre class="prettyprint"><code class=" hljs objectivec"><span class="hljs-preprocessor"><span class="hljs-preprocessor">#import <span class="hljs-title">"ViewController.h"</span> </span></span><span class="hljs-preprocessor"><span class="hljs-preprocessor">#import <span class="hljs-title">"ASIHTTPRequest.h"</span> </span></span><span class="hljs-class"><span class="hljs-class"> <span class="hljs-keyword">@interface</span> <span class="hljs-title">hmviewcontroller</span> ()//<<span class="hljs-title">asiprogressdelegate</span>></span></span><span class="hljs-keyword"><span class="hljs-keyword">@property</span></span>(<span class="hljs-keyword"><span class="hljs-keyword">Weak</span></span>,<span class="hljs-keyword"><span class="hljs-keyword">nonatomic</span></span>)<span class="hljs-keyword"><span class="hljs-keyword">Iboutlet</span></span>Uiprogressview *progressview;<span class="hljs-keyword"><span class="hljs-keyword">@property</span></span>(<span class="hljs-keyword"><span class="hljs-keyword">nonatomic</span></span>,<span class="hljs-keyword"><span class="hljs-keyword">Assign</span></span>)<span class="hljs-built_in"><span class="hljs-built_in">BOOL</span></span>downloading;<span class="hljs-keyword"><span class="hljs-keyword">@property</span></span>(<span class="hljs-keyword"><span class="hljs-keyword">nonatomic</span></span>,<span class="hljs-keyword"><span class="hljs-keyword">Strong</span></span>) ASIHTTPRequest *request;<span class="hljs-keyword"><span class="hljs-keyword">@end</span></span><span class="hljs-class"><span class="hljs-class"> <span class="hljs-keyword">@implementation</span> <span class="hljs-title">hmviewcontroller</span> </span></span>- (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) viewdidload{[<span class="hljs-keyword"><span class="hljs-keyword">Super</span></span>viewdidload];<span class="hljs-comment"><span class="hljs-comment">additional setup after loading the view, typically from a nib.</span></span>}- (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) touchesbegan: (nsset *) touches withevent: (uievent *) event{[<span class="hljs-keyword"><span class="hljs-keyword"></span> self</span>download];} - (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) download{<span class="hljs-keyword"><span class="hljs-keyword">if</span></span>(<span class="hljs-keyword"><span class="hljs-keyword"></span> self</span><span class="hljs-variable"><span class="hljs-variable">. Downloading</span></span>) { [<span class="hljs-keyword"><span class="hljs-keyword"></span> self</span><span class="hljs-variable"><span class="hljs-variable">. Request</span></span>cleardelegatesandcancel];<span class="hljs-keyword"><span class="hljs-keyword"></span> self</span><span class="hljs-variable"><span class="hljs-variable">. Downloading</span></span>=<span class="hljs-literal"><span class="hljs-literal">NO</span></span>; }<span class="hljs-keyword"><span class="hljs-keyword">Else</span></span>{<span class="hljs-comment"><span class="hljs-comment">//1.URL</span></span> <span class="hljs-built_in"><span class="hljs-built_in">Nsurl</span></span>*url = [<span class="hljs-built_in"><span class="hljs-built_in">Nsurl</span></span>urlwithstring:@<span class="hljs-string"><span class="hljs-string">"http://localhost:8080/Server/resources/test.mp4"</span></span>];<span class="hljs-comment"><span class="hljs-comment">//2. Create a Request object</span></span>ASIHTTPRequest *request = [asihttprequest requestwithurl:url];<span class="hljs-comment"><span class="hljs-comment">//3. Set the cache path for the file</span></span> <span class="hljs-built_in"><span class="hljs-built_in">NSString</span></span>*caches = [nssearchpathfordirectoriesindomains (nscachesdirectory, nsuserdomainmask,<span class="hljs-literal"><span class="hljs-literal">YES</span></span>) lastobject];<span class="hljs-built_in"><span class="hljs-built_in">NSString</span></span>*filepath = [caches stringbyappendingpathcomponent:@<span class="hljs-string"><span class="hljs-string">"test.mp4"</span></span>]; Request<span class="hljs-variable"><span class="hljs-variable">. Downloaddestinationpath</span></span>= filepath;<span class="hljs-comment"><span class="hljs-comment">//4. set the agent for progress monitoring (to be a progress monitoring agent, it is best to abide by the asiprogressdelegate Protocol)</span></span>Request<span class="hljs-variable"><span class="hljs-variable">. Downloadprogressdelegate</span></span>=<span class="hljs-keyword"><span class="hljs-keyword"></span> self</span><span class="hljs-variable"><span class="hljs-variable">. Progressview</span></span>;<span class="hljs-comment"><span class="hljs-comment">//this property is set to Yes to support breakpoint download</span></span>Request<span class="hljs-variable"><span class="hljs-variable">. Allowresumeforfiledownloads</span></span>=<span class="hljs-literal"><span class="hljs-literal">YES</span></span>;<span class="hljs-comment"><span class="hljs-comment">//if you want to implement a breakpoint continuation, you need to set a temporary path to the file</span></span>Request<span class="hljs-variable"><span class="hljs-variable">. Temporaryfiledownloadpath</span></span>= [nstemporarydirectory () stringbyappendingpathcomponent:@<span class="hljs-string"><span class="hljs-string">"test.temp"</span></span>];<span class="hljs-comment"><span class="hljs-comment">//5. start the request</span></span>[request startasynchronous];<span class="hljs-keyword"><span class="hljs-keyword"></span> self</span><span class="hljs-variable"><span class="hljs-variable">. Request</span></span>= request;<span class="hljs-keyword"><span class="hljs-keyword"></span> self</span><span class="hljs-variable"><span class="hljs-variable">. Downloading</span></span>=<span class="hljs-literal"><span class="hljs-literal">YES</span></span>; }}- (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) Setprogress: (<span class="hljs-keyword"><span class="hljs-keyword">float</span></span>) newprogress{<span class="hljs-comment"><span class="hljs-comment">//NSLog (@ "download progress--%f", newprogress);</span></span> <span class="hljs-keyword"><span class="hljs-keyword"></span> self</span><span class="hljs-variable"><span class="hljs-variable">. Progressview</span></span><span class="hljs-variable"><span class="hljs-variable">. Progress</span></span>= newprogress;}<span class="hljs-keyword"><span class="hljs-keyword">@end</span></span></code></pre>File Upload<pre class="prettyprint"><code class=" hljs objectivec"><span class="hljs-preprocessor"><span class="hljs-preprocessor">#import <span class="hljs-title">"ViewController.h"</span> </span></span><span class="hljs-preprocessor"><span class="hljs-preprocessor">#import <span class="hljs-title">"ASIFormDataRequest.h"</span> </span></span><span class="hljs-preprocessor"><span class="hljs-preprocessor">#import <span class="hljs-title">"ASINetworkQueue.h"</span> </span></span><span class="hljs-class"><span class="hljs-class"> <span class="hljs-keyword">@interface</span> <span class="hljs-title">hmviewcontroller</span> ()</span></span><span class="hljs-keyword"><span class="hljs-keyword">@property</span></span>(<span class="hljs-keyword"><span class="hljs-keyword">Weak</span></span>,<span class="hljs-keyword"><span class="hljs-keyword">nonatomic</span></span>)<span class="hljs-keyword"><span class="hljs-keyword">Iboutlet</span></span>Uiprogressview *progressview;<span class="hljs-keyword"><span class="hljs-keyword">@end</span></span><span class="hljs-class"><span class="hljs-class"> <span class="hljs-keyword">@implementation</span> <span class="hljs-title">hmviewcontroller</span> </span></span>- (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) viewdidload{[<span class="hljs-keyword"><span class="hljs-keyword">Super</span></span>viewdidload];<span class="hljs-comment"><span class="hljs-comment">//asinetworkqueue *queue = [asinetworkqueue queue];</span></span><span class="hljs-comment"><span class="hljs-comment">//queue.shouldcancelallrequestsonfailure = YES;</span></span>}- (<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) touchesbegan: (nsset *) touches withevent: (uievent *) event{<span class="hljs-comment"><span class="hljs-comment">//1.URL</span></span> <span class="hljs-built_in"><span class="hljs-built_in">Nsurl</span></span>*url = [<span class="hljs-built_in"><span class="hljs-built_in">Nsurl</span></span>urlwithstring:@<span class="hljs-string"><span class="hljs-string">"http://localhost:8080/Server/upload"</span></span>];<span class="hljs-comment"><span class="hljs-comment">//2. Create a Request object</span></span>Asiformdatarequest *request = [asiformdatarequest requestwithurl:url];<span class="hljs-comment"><span class="hljs-comment">//3. Set Request Parameters</span></span>[request setpostvalue:@<span class="hljs-string"><span class="hljs-string">"zhangsan"</span></span>forkey:@<span class="hljs-string"><span class="hljs-string">"username"</span></span>]; [request setpostvalue:@<span class="hljs-string"><span class="hljs-string">"123"</span></span>forkey:@<span class="hljs-string"><span class="hljs-string">"pwd"</span></span>]; [request setpostvalue:@<span class="hljs-string"><span class="hljs-string">"</span> "</span>forkey:@<span class="hljs-string"><span class="hljs-string">"age"</span></span>]; [request setpostvalue:@<span class="hljs-string"><span class="hljs-string">"1.89"</span></span>forkey:@<span class="hljs-string"><span class="hljs-string">"height"</span></span>];<span class="hljs-comment"><span class="hljs-comment">//set file Parameters</span></span> <span class="hljs-built_in"><span class="hljs-built_in">NSString</span></span>*file = [[<span class="hljs-built_in"><span class="hljs-built_in">NSBundle</span></span>mainbundle] pathforresource:@<span class="hljs-string"><span class="hljs-string">"test"</span></span>oftype:@<span class="hljs-string"><span class="hljs-string">"mp4"</span></span>];<span class="hljs-comment"><span class="hljs-comment">//if you know the file path, it's best to use this method (because it's Simple)</span></span> <span class="hljs-comment"><span class="hljs-comment">//asi will automatically identify files within the MimeType</span></span>[request Setfile:file forkey:@<span class="hljs-string"><span class="hljs-string">"file"</span></span>]; [request Setfile:file withfilename:@<span class="hljs-string"><span class="hljs-string">"basic.pptx"</span></span>andcontenttype:@<span class="hljs-string"><span class="hljs-string">"application/vnd.openxmlformats-officedocument.presentationml.presentation"</span></span>forkey:@<span class="hljs-string"><span class="hljs-string">"file"</span></span>];<span class="hljs-comment"><span class="hljs-comment">//if the file data is generated dynamically, use this method (such as the image data obtained after the photo was Taken)</span></span><span class="hljs-comment"><span class="hljs-comment">//[request setdata:<# (id) #> withfilename:<# (nsstring *) #> andcontenttype:<# (nsstring *) #> forkey:<# (nsstring *) #>];</span></span> <span class="hljs-comment"><span class="hljs-comment">//4. Set the agent to monitor upload progress</span></span>Request<span class="hljs-variable"><span class="hljs-variable">. Uploadprogressdelegate</span></span>=<span class="hljs-keyword"><span class="hljs-keyword"></span> self</span><span class="hljs-variable"><span class="hljs-variable">. Progressview</span></span>;<span class="hljs-comment"><span class="hljs-comment">//5. start the request</span></span>[request startasynchronous];<span class="hljs-comment"><span class="hljs-comment">//6. Monitoring Complete</span></span>__<span class="hljs-keyword"><span class="hljs-keyword">Weak</span></span>typeof (request) Weakrequest = request; [request setcompletionblock:^{<span class="hljs-built_in"><span class="hljs-built_in">NSLog</span></span>(@<span class="hljs-string"><span class="hljs-string">"%@"</span></span>, [weakrequest responsestring]); }];}<span class="hljs-keyword"><span class="hljs-keyword">@end</span></span></code></pre> <p><p>iOS development-"ASI" usage examples</p></p></span>

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.