同步网络请求 类封装,包括get请求和post请求,可选择是否进行JSON解析

同步网络请求 类封装,包括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

3.示例封装代码下载

示例封装代码下载:http://pan.baidu.com/s/1jGYE48e  












  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值