網(wǎng)絡(luò)數(shù)據(jù)請求2

#import "ViewController.h"#import "HttpResquestHelper.h"@interface ViewController ()- (IBAction)get:(id)sender;

- (IBAction)post:(id)sender;

- (IBAction)block:(id)sender;

- (IBAction)delete:(id)sender;

@property(nonatomic,strong)NSMutableData *data;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

#pragma mark? -----nsurlsection注意:所有的請求都必須要用resume開啟

//get請求

- (IBAction)get:(id)sender {

//1.封裝網(wǎng)址對象

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";

NSURL *url =[NSURL URLWithString:urlstring];

//2.設(shè)置網(wǎng)絡(luò)請求

NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:url];

//創(chuàng)建一個(gè)session對象,他是單利方法

NSURLSession *session=[NSURLSession sharedSession];

//3.創(chuàng)建有個(gè)請求任務(wù)

NSURLSessionDataTask *task =[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

NSString *result =[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

NSLog(@"%@",result);

}];

[task resume];

}

- (IBAction)post:(id)sender {

//1.封裝網(wǎng)址

NSString *urlstring =@"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx";

NSURL *url =[NSURL URLWithString:urlstring];

//2.設(shè)置post請求

NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:url];

[request setHTTPMethod:@"POST"];

NSString *poststring =@"?date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213";

NSData *postdata =[poststring dataUsingEncoding:NSUTF8StringEncoding];

[request setHTTPBody:postdata];

//? ? NSData *data =[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

//? ? NSString *result =[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

//? ? NSLog(@"%@",result);

//3.創(chuàng)建請求任務(wù)

//創(chuàng)建一個(gè)session單利

NSURLSession *session =[NSURLSession sharedSession];

NSURLSessionDataTask *task =[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

NSString *result =[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

NSLog(@"%@",result);

}];

[task resume];

}

#pragma mark ------block

- (IBAction)block:(id)sender {

HttpResquestHelper *request =[HttpResquestHelper defaultmanager];

[request requestWithMrthod:@"GET" url:@"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213" parameter:@"" complitewithdata:^(NSData *data){

NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);

}];

}

#pragma mark? ----nsurlsessiondatatask--

//接受服務(wù)器響應(yīng)

-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler{

//當(dāng)網(wǎng)絡(luò)是基于HTTP協(xié)議時(shí)response是nshttpurlresponse類型的

NSHTTPURLResponse *httpresponse =(NSHTTPURLResponse *)response;

long long length =? httpresponse.expectedContentLength;

NSLog(@"%lld",length);

//? ? NSLog(@"statusCode:%ld",httpresponse.statusCode);

//? ? NSLog(@"%@",response);

completionHandler(NSURLSessionResponseAllow);

self.data =[NSMutableData data];

}

//接收數(shù)據(jù){

-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data{

[self.data appendData:data];

NSString *string =[[NSString alloc]initWithData:self.data encoding:NSUTF8StringEncoding];

NSLog(@"%@",string);

}

//完成時(shí)或者請求失敗

-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error{

NSLog(@"123");

}

//設(shè)置代理請求

- (IBAction)delete:(id)sender {

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";

NSURL *url =[NSURL URLWithString:urlstring];

//使用代理方法我們需設(shè)置代理,但是session的delete是只讀,想要設(shè)置得通過如下方法

NSURLSession *session =[NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[NSOperationQueue mainQueue]];

//創(chuàng)建任務(wù).因?yàn)槲覀?/p>

NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:url];

NSURLSessionDataTask *task =[session dataTaskWithRequest:request];

//NSString *result =[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

//NSLog(@"%@",result);

[task resume];

NSLog(@"fffffffff");

}

封裝用的模型

#import "HttpResquestHelper.h"

static HttpResquestHelper *helper =nil;

@implementation HttpResquestHelper

+(instancetype)defaultmanager{

static dispatch_once_t onceToken;

dispatch_once(&onceToken,^{

helper =[[HttpResquestHelper alloc]init];

});

return helper;

}

- (void)requestWithMrthod:(NSString *)method url:(NSString *)urlstring parameter:(NSString *)parameter complitewithdata:(BLOCK)block {

NSURL *url =[NSURL URLWithString:urlstring];

NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:0];

if ([method isEqualToString:@"POST"]) {

request.HTTPMethod =@"POST";

request.HTTPBody =[parameter dataUsingEncoding:NSUTF8StringEncoding];

}

//創(chuàng)建請求任務(wù),

NSURLSession? *session =[NSURLSession sharedSession];

NSURLSessionDataTask *task =[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

block(data);

}];

[task resume];

}

@end


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容