同步网络请求 类封装,包括get请求和post请求,可选择是否进行JSON解析
-嘛嘛再也不用担心我的代码比较繁琐了
1.今天做到网络请求,由于比较常用就自己封装了一个比较完善的网络请求加解析的类,话说好东西齐分享啊,有比较懒的同学就可以直接到文章最后瞎子啊链接去我的云盘下载就好了;
2.话不多说直接代码演示:
XBURLSynchronousRequest.h文件内容
#import <Foundation/Foundation.h>
@interface XBURLSynchronousRequest :NSObject//XBURLSynchronousRequest.h
/**
* get同步请求
*
* @param URL 网络链接
* @param isJson 是否进行JSON解析
*
* @return 如果不解析返回NSData,如果解析返回解析后的数组或字典,如果返回空说明网络请求失败
*/
+ (id) URLSynchronousGetRequest:(NSString *)URL andIsJson:(BOOL)isJson;
/**
* post同步请求
*
* @param URL 网络链接
* @param parameter 链接的参数
* @param isJson 是否解析
*
* @return 如果不解析返回NSData,如果解析返回解析后的数组或字典,如果返回空说明网络请求失败
*/
+ (id) URLSynchronousPostRequest:(NSString *)URL andWithParameter:(NSString *)parameter andIsJson:(BOOL)isJson;
@end
XBURLSynchronousRequest.m文件内容
#import "XBURLSynchronousRequest.h"
@implementation XBURLSynchronousRequest//XBURLSynchronousRequest.m
+ (id) URLSynchronousGetRequest:(NSString *)URL andIsJson:(BOOL)isJson{
//创建URL链接
NSURL *url = [NSURLURLWithString:URL];
//通过URL链接创建网络请求
NSURLRequest * request = [NSURLRequestrequestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicytimeoutInterval:10.0f];
NSError * error = nil;
//发送get同步网络请求
NSData * data = [NSURLConnectionsendSynchronousRequest:request returningResponse:nilerror:&error];
if (error)
NSLog(@"-----get同步网络请求失败------\n%@",error);
else{
if (isJson)
return [selfjsonSerialization:data];
return data;
}
return nil;
}
+ (id) URLSynchronousPostRequest:(NSString *)URL andWithParameter:(NSString *)parameter andIsJson:(BOOL)isJson{
NSURL * url = [NSURLURLWithString:URL];
NSMutableURLRequest * mRequest = [NSMutableURLRequestrequestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicytimeoutInterval:10.0f];
//设定请求方式
mRequest.HTTPMethod =@"POST";
//设置请求body
NSData * data = [parameterdataUsingEncoding:NSUTF8StringEncoding];
mRequest.HTTPBody = data;
NSError * error = nil;
NSData * infoData = [NSURLConnection sendSynchronousRequest:mRequest returningResponse:nil error:&error];
if (error)
NSLog(@"-------post同步网络请求失败-------\n%@",error);
else{
if (isJson)
//json解析
return [self jsonSerialization:infoData];
return infoData;
}
return nil;
}
//JSON解析
+ (id)jsonSerialization:(NSData *)data{
NSError * error =nil;
id obj = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
if (error)
NSLog(@"-------JSON解析错误------\n%@",error);
else
return obj;
return nil;
}
@end