IOS中get同步异步请求与post同步异步请求
2020年02月15日
作者:佚名
下面是来客网 jb51.cc 通过网络收集整理的代码片段。
来客网小编现在分享给大家,也给大家做个参考。
#import "ViewController.h" @interface ViewController () @property(nonatomic,strong)UITextView *textView; @property(nonatomic,copy)NSString *BASE_URL; @property(nonatomic,copy)NSString *BASE_URL1_PARAM; @property(nonatomic,strong)NSMutableData *mutableData; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view,typically from a nib. } #pragma mark - get同步 - (IBAction)getSyncButtonAction:(UIButton *)sender { NSString * BASE_URL= @"www.baidu.com"; //1.准备URL地址 NSURL *url = [NSURL URLWithString:BASE_URL]; //2.准备请求对象 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; //2.1设置请求方式 [request setHTTPMethod:@"GET"]; //3.准备返回结果 NSURLResponse *response = nil; NSError *error = nil; //4.创建链接对象,并发送请求,并获取结果(需要的数据) NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; //5.打印获取到的一些信息 NSLog(@"结果类型:%@",response.MIMEType); NSLog(@"请求的网址:%@",response.URL); NSLog(@"结果长度:%lld",response.expectedContentLength); NSLog(@"请求到的结果:%@",data); //6.解析文件 NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; //7.显示在textView里 self.textView.text = [NSString stringWithFormat:@"%@",dict]; } #pragma mark - get异步 - (IBAction)getAsyncButtonAction:(UIButton *)sender { //1.准备url地址 NSURL *url = [NSURL URLWithString:_BASE_URL]; //2.创建请求对象 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; //3.创建链接对象,发送请求 [NSURLConnection connectionWithRequest:request delegate:self]; } #pragma mark - POST同步 - (IBAction)postSyncButtonAction:(UIButton *)sender { //1.准备网址 NSURL *url = [NSURL URLWithString:_BASE_URL]; //2.准备请求对象 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; //2.1设置请求方式 [request setHTTPMethod:@"POST"]; //2.2设置请求参数 #warning 设置请求参数,需要的是NSData类型 NSData *param = [_BASE_URL1_PARAM dataUsingEncoding:NSUTF8StringEncoding]; [request setHTTPBody:param]; //3.创建链接对象,获取结果 NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; //4.解析 NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; //5.显示 self.textView.text = [NSString stringWithFormat:@"%@",dict]; } #pragma mark - POST异步 - (IBAction)postAsyncButtonAction:(UIButton *)sender { __block ViewController *weakSelf = self; //1.准备地址 NSURL *url = [NSURL URLWithString:_BASE_URL]; //2.创建请求对象,并设置请求方法和参数 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setHTTPMethod:@"POST"]; [request setHTTPBody:[_BASE_URL1_PARAM dataUsingEncoding:NSUTF8StringEncoding]]; //3.创建链接对象,发送请求,在block内部完成分析 [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue new] completionHandler:^(NSURLResponse *response,NSData *data,NSError *connectionError) { //NSLog(@"%@",data); //4.解析 NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; //5.回到主线程,进行更新页面 dispatch_sync(dispatch_get_main_queue(),^{ weakSelf.textView.text = [NSString stringWithFormat:@"%@",dict]; }); }]; } #pragma mark - 清除 - (IBAction)clearButtonAction:(UIButton *)sender { _textView.text = nil; } #pragma mark - 实现协议方法 #pragma mark 开始接收请求结果 - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { //初始化 self.mutableData = [NSMutableData data]; } #pragma mark - 接收数据 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { //拼接接收到的数据 [self.mutableData appendData:data]; } #pragma makr - 接收完毕 - (void)connectionDidFinishLoading:(NSURLConnection *)connection { //解析 NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:_mutableData options:NSJSONReadingAllowFragments error:nil]; _textView.text = [NSString stringWithFormat:@"%@",dict]; } #pragma mark - 接收错误 - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { }- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
以上是来客网(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。
以上是来客网为你收集整理的IOS中get同步异步请求与post同步异步请求全部内容,希望文章能够帮你解决IOS中get同步异步请求与post同步异步请求所遇到的程序开发问题。
如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。