GET Post Async Block method
POST:-(Ibaction) Post: (ID) Sender {nsurlsession*session =[Nsurlsession sharedsession]; NSString*urlstring =@"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx"; Nsurl*url =[Nsurl urlwithstring:urlstring]; Nsmutableurlrequest*request =[Nsmutableurlrequest Requestwithurl:url]; NSString*datastring =@"date=20131129&startrecord=1&len=5&udid=1234567890&terminaltype=iphone&cid=213"; NSData*potadata =[datastring datausingencoding:nsutf8stringencoding]; [Request Sethttpmethod:@"POST"]; [Request Sethttpbody:potadata]; Nsurlsessiontask*task = [Session datataskwithrequest:request completionhandler:^ (NSData * _nullable data, Nsurlresponse * _Nullable RESPO NSE, Nserror *_nullable Error) { if(Error = =Nil) {Nsdictionary*dic =[nsjsonserialization jsonobjectwithdata:data options:nsjsonreadingallowfragments Error:nil]; NSLog (@"dic = =%@" , DIC); } }]; [Task resume]; }GET: //using the block callback method//using the system-provided global Nsurlsession object, is a single caseNsurlsession *session =[Nsurlsession sharedsession]; //Create an address string (do not empty the grid)NSString*urlstring =@"http://ipad-bjwb.bjd.com.cn/digitalpublication/publish/handler/apinewslist.ashx?date=20131129& startrecord=1&len=5&udid=1234567890&terminaltype=iphone&cid=213"; //Uniform Resource LocatorNsurl *url =[Nsurl urlwithstring:urlstring]; //Nsurlsession is task-based, so everything is put into the task, Nsurlsessiontask is Nsurlsession's task execution objectNsurlsessiontask *task = [Session Datataskwithurl:url completionhandler:^ (NSData * _nullable data, Nsurlresponse * _Nulla BLE response, Nserror *_nullable Error) { if(Error = =Nil) {Nsdictionary*dic =[nsjsonserialization jsonobjectwithdata:data options:nsjsonreadingallowfragments Error:nil]; NSLog (@"dic = =%@", DIC); } }]; //all nsurlsession tasks are suspended by default, so be sure to call the Resume method to start the task //[Task resume];
GET Post Asynchronous Proxy method
//nsurlsessiondatadelegate nsurlsession the Proxy protocol for obtaining network data @interface viewcontroller () < Nsurlsessiondatadelegate>// data @property for saved results(nonatomic, Strong) Nsmutabledata * Resultdata; @end POST: -(Ibaction) Post: (ID) Sender {Nsurl*url = [Nsurl urlwithstring:@"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx"]; Nsmutableurlrequest*request =[Nsmutableurlrequest Requestwithurl:url]; NSString*datastring =@"date=20131129&startrecord=1&len=5&udid=1234567890&terminaltype=iphone&cid=213"; NSData*potadata =[datastring datausingencoding:nsutf8stringencoding]; [Request Sethttpmethod:@"POST"]; [Request Sethttpbody:potadata]; Nsurlsession*session = [Nsurlsession sessionwithconfiguration:[nsurlsessionconfiguration defaultsessionconfiguration]Delegate: Self delegatequeue:[nsoperationqueue mainqueue]]; Nsurlsessiondatatask*datatask = [Session datataskwithrequest:request]; [Datatask resume]; }GET: -(Ibaction)Get:(ID) Sender {//asynchronous operation of the nsurlsession agent//Nsurlsession Agent Property is read-only//first parameter: Session mode//second parameter: Agent//third parameter: Which thread the proxy method is inNsurlsession *session = [Nsurlsession sessionwithconfiguration:[nsurlsessionconfiguration Defaultsessionconfiguration]Delegate: Self delegatequeue:[nsoperationqueue mainqueue]]; Nsurl*url = [Nsurl urlwithstring:@"http://ipad-bjwb.bjd.com.cn/digitalpublication/publish/handler/apinewslist.ashx?date=20131129& startrecord=1&len=5&udid=1234567890&terminaltype=iphone&cid=213"]; //sub-class object for NsurlsessiontaskNsurlsessiondatatask *datatask =[Session Datataskwithurl:url]; [Datatask resume]; }
//Agent-implemented methods
Server starts responding
-(void) Urlsession: (Nsurlsession *) session Datatask: (nonnull nsurlsessiondatatask *) datatask Didreceiveresponse: ( Nonnull nsurlresponse *) Response Completionhandler: (nonnull void (^) (nsurlsessionresponsedisposition)) Completionhandler
{
The Nsurlsession proxy protocol must be set up to allow continued requests to continue the response server to obtain the data
Completionhandler (Nsurlsessionresponseallow);
Self.resultdata = [Nsmutabledata data];
}
Receive data
-(void) Urlsession: (Nsurlsession *) session Datatask: (nonnull nsurlsessiondatatask *) datatask didreceivedata: (nonnull NSData *) data
{
[Self.resultdata Appenddata:data];
}
End response
-(void) Urlsession: (Nsurlsession *) session Task: (Nsurlsessiontask *) Task Didcompletewitherror: (NSERROR *) error
{
if (Error = = nil) {
Nsdictionary *dic = [Nsjsonserialization JSONObjectWithData:self.resultData options:nsjsonreadingallowfragments Error:nil];
NSLog (@ "dic = =%@", dic);
}
}
UI Advanced Data Parsing (Network request nsurlsession)