IOS开发—网络请求之GET/POST同步请求

来源:互联网 发布:智业软件薪资 编辑:程序博客网 时间:2024/04/30 13:01

网络请求之GET/POST同步请求


同步请求的特点:发送同步请求的时候,无法与应用进行交互。

发送同步请求的方法:

+ (NSData *)sendSynchronousRequest:(NSURLRequest *)requestreturningResponse:(NSURLResponse **)response error:(NSError **)error;


代码实例:

#import "LXXViewController.h"#define URL_WITH_PARAM @"http://kaiyi.3tichina.com:8001/mall/list.php?page=1&catid=4";#define URL_WITHOUT_PARAM @"http://kaiyi.3tichina.com:8001/mall/list.php";#define PARAM @"page=1&catid=4";@interface LXXViewController ()@property (weak,nonatomic) IBOutletUIImageView *imageView;@property (weak,nonatomic) IBOutletUIButton *loadButton; @property (strong,nonatomic) NSMutableURLRequest *request;@property (copy,nonatomic) NSString *imgURLString;@property (strong,nonatomic) NSData *responseData;@end @implementationLXXViewController - (void)viewDidLoad{    [super viewDidLoad];    self.title =@"网络请求Demo";    //设置请求    [self setRequest];} #pragma mark - setRequest- (void)setRequest{    //get同步请求    NSString *str = URL_WITH_PARAM;    NSURL *URL = [NSURLURLWithString:str];    _request = [NSMutableURLRequestrequestWithURL:URL];    _responseData = [NSURLConnectionsendSynchronousRequest:_requestreturningResponse:nilerror:nil];       //post同步请求//    NSString *str = URL_WITHOUT_PARAM;//    NSURL *URL = [NSURL URLWithString:str];//    _request = [NSMutableURLRequestrequestWithURL:URL];//    [_request setHTTPMethod:@"POST"];//    NSString *param = PARAM;//    NSData *data = [paramdataUsingEncoding:NSUTF8StringEncoding];//    //设置请求提(参数)//    [_request setHTTPBody:data];//    _responseData = [NSURLConnectionsendSynchronousRequest:_request returningResponse:nil error:nil];} - (IBAction)loadAction:(id)sender{    //下面代码不是本文关键    //解析请求响应数据,获取到响应数据中的一个图像URL,再次请求显示在imageView出来,以放大请求结果。    NSDictionary *dic = [NSJSONSerializationJSONObjectWithData:_responseDataoptions:NSJSONReadingMutableLeaveserror:nil];    NSArray *arr = [dic objectForKey:@"data"];    NSDictionary *dicData = [arrobjectAtIndex:0];    _imgURLString = [dicData objectForKey:@"thumb"];    NSURL *imageURL = [NSURLURLWithString:_imgURLString];    NSURLRequest *request = [[NSURLRequestalloc]initWithURL:imageURLcachePolicy:NSURLRequestReloadIgnoringLocalCacheDatatimeoutInterval:10.0];       NSData *data = [NSURLConnectionsendSynchronousRequest:request returningResponse:nil error:nil];    UIImage *image = [UIImageimageWithData:data];    _imageView.image = image;}@end

点击button后的界面效果:(从网络上加载出了指定图像)


0 0
原创粉丝点击