网络请求的封装方法
来源:互联网 发布:手机安装监控软件 编辑:程序博客网 时间:2024/05/13 20:00
网络请求:
Connection.h文件
#import "Connection.h"@implementation Connection- (instancetype)init{ self = [super init]; if (self) { self.data = [NSMutableData data]; } return self;}- (void)dealloc{ [super dealloc];}+ (void)connectionWithUrl:(NSString *)strUrl parmaters:(NSMutableDictionary *)parmaters delegate:(id<ConnectionDelegate>)delegate flag:(NSInteger)flag{ Connection *conn = [[Connection alloc] init]; conn.delegate = delegate; conn.flag = flag; [conn startConnectWithUrl:strUrl parmaters:parmaters]; [conn release];}//网络请求的准备阶段:- (void)startConnectWithUrl:(NSString *)strUrl parmaters:(NSMutableDictionary *)parmaters{ //拼接网址 NSString *str = @""; for (NSString *key in [parmaters allKeys]) { if ([str length] == 0) { str = [NSString stringWithFormat:@"?%@=%@",key,[parmaters objectForKey:key]]; }else{ str = [NSString stringWithFormat:@"%@&%@=%@",str,key,[parmaters objectForKey:key]]; } } NSString *value = [NSString stringWithFormat:@"%@%@",strUrl,str]; //转换字符串格式为Utf8,防止网址中出现汉字 value = [value stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *url = [NSURL URLWithString:value]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; //网络请求的响应方法 [request setHTTPMethod:@"GET"]; //连接网络 [NSURLConnection connectionWithRequest:request delegate:self]; }//接受响应- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{ }//接收数据- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{ [self.data appendData:data];}//响应完成- (void)connectionDidFinishLoading:(NSURLConnection *)connection{ if ([self.delegate respondsToSelector:@selector(sendToData:flag:)]) { [self.delegate sendToData:self.data flag:self.flag]; }}//如果出现错误显示错误信息-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{ NSLog(@"error = %@",error);}@end
#import <Foundation/Foundation.h>@protocol ConnectionDelegate <NSObject>//传递数据- (void)sendToData:(NSMutableData *)data flag:(NSInteger)flag;@end@interface Connection : NSObject<NSURLConnectionDataDelegate>@property(retain,nonatomic)NSMutableData *data;@property(assign,nonatomic)NSInteger flag;@property(assign,nonatomic)id<ConnectionDelegate>delegate;+ (void)connectionWithUrl:(NSString *)strUrl parmaters:(NSMutableDictionary *)parmaters delegate:(id<ConnectionDelegate>)delegate flag:(NSInteger)flag;- (void)startConnectWithUrl:(NSString *)strUrl parmaters:(NSMutableDictionary *)parmaters;@end
Connection.m文件:
0 0
- 网络请求的封装方法
- 网络请求的封装
- 封装的网络请求
- 网络请求的封装
- 网络请求的封装
- 网络访问请求关于封装了拼接url的方法。
- 各种网络请求的封装
- HttpURLConnection网络请求的封装
- Xutils3网络请求的封装
- Xutils3网络请求的封装
- 封装OkHttp的网络请求
- 对NSURLSession进行网络请求方法封装
- 常见的Android 网络请求的封装;
- 使用NSURLConnection的网络请求与封装
- MKNetworkKit对网络请求的完美封装
- 第三方网络请求的封装
- AFNetworking 2.5.x 网络请求的封装
- 自定义UI 网络 请求类的封装
- linux 常用命令积累
- Centos 7 单机安装 Openstack(PackStack)
- 解决jquery-1.10.2.min.map 404 Not Found错误
- ASP.NET知识总结(一般处理程序动态处理图片(验证码、水印、缩略图))
- 了解select模型的六大注意点
- 网络请求的封装方法
- URAL 1295. Crazy Notions(数学啊 & 找规律)
- 2015年学习计划
- android开发小技巧(4)漂亮的单选按钮(非radiobutton)
- “网上订餐”缘何受到大学生青睐
- poj 3294 Life Forms (后缀数组应用)
- win7装ubuntu
- 玩玩PHP
- 如何在XML中使用自定义Animation动画类