99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>開(kāi)源軟件-YiNetwork HTTP請(qǐng)求封裝庫(kù)

開(kāi)源軟件-YiNetwork HTTP請(qǐng)求封裝庫(kù)

2022-06-28 | zip | 0.03 MB | 次下載 | 免費(fèi)

資料介紹

授權(quán)協(xié)議 MIT
開(kāi)發(fā)語(yǔ)言 Objective-C
軟件類型 開(kāi)源軟件
所屬分類 iOS代碼庫(kù)、 網(wǎng)絡(luò)(Networking)

軟件簡(jiǎn)介

YiNetwork是一個(gè)的HTTP請(qǐng)求封裝庫(kù),基于AFNetworking的AFHTTPSessionManager。

YiNetwork主要是一個(gè)基類庫(kù),主要是兩個(gè)類YiBaseRequest和YiBaseModel.

之所以創(chuàng)建兩個(gè)基類,是為了讓各個(gè)請(qǐng)求之間的耦合性降低,能夠非常簡(jiǎn)單的實(shí)現(xiàn)一個(gè)請(qǐng)求,并且在上層很簡(jiǎn)單調(diào)用一個(gè)請(qǐng)求。每一個(gè)請(qǐng)求一個(gè)子類也非常能夠方便團(tuán)隊(duì)協(xié)作,每個(gè)人都可以管理自己的請(qǐng)求模塊。

另外,由于Apple在網(wǎng)絡(luò)請(qǐng)求方面由NSURLConnection(iOS 2-9)轉(zhuǎn)向NSURLSession(iOS7以上),隨之AFNetworking 3.0也就廢棄了NSURLConnection相關(guān)的 AFURLConnectionOperation,AFHTTPRequestOperation,AFHTTPRequestOperationManager 三個(gè)類,并且建議使用AFHTTPSessionManager,所以YiBaseRequest也是基于AFHTTPSessionManager的封 裝。

YiNetwork目前依賴JSONModel version1.1.2和AFNetworking version2.6.1,是一套值得選擇的App請(qǐng)求方案。

Podfile

platform?:ios,?'7.0'pod?"YiNetwork",?"~>?0.9.2"

YiBaseModel

YiBaseModel繼承自第三方庫(kù)JSONModel,當(dāng)然你也可以不用使用它,自己解析JSON數(shù)據(jù)或者其它格式的數(shù)據(jù)

YiBaseRequest

YiBaseRequest必須子類化

屬性

@property?(nonatomic,?strong)?NSMutableDictionary?*getParams;
@property?(nonatomic,?strong)?NSMutableDictionary?*postParams;

可以在子類自定義的init方法里面,加入需要的GET參數(shù)或者POST參數(shù)

@property?(nonatomic,?assign)?NSInteger?retryCount;
@property?(nonatomic,?assign)?NSInteger?retryIndex;

retryCount表示請(qǐng)求出錯(cuò)時(shí)重試的次數(shù),默認(rèn)為0;retryIndex表示正在重試第幾次

方法

?- (void)requestWithSuccess:(void(^)(YiBaseModel *model,NSURLSessionTask *task))success
? ? ? ? ? ? ? ? ? failure:(void(^)(NSError *error,NSURLSessionTask *task))failure;

數(shù)據(jù)請(qǐng)求的方法,只要在上層調(diào)用該方法就可以獲得請(qǐng)求成功或者失敗的反饋,以得到Y(jié)iBaseModel的數(shù)據(jù)。

-?(YiHTTPRequestMethod)requestMethod;

需要實(shí)現(xiàn)的子類方法,表示請(qǐng)求方法,默認(rèn)是YiHTTPRequestMethodGet為GET請(qǐng)求

-?(YiBaseModel?*)responseModelWithData:(id)data;

處理請(qǐng)求到得數(shù)據(jù)

-?(NSString?*)pathName;
-?(NSString?*)rootUrl;

pathName表示請(qǐng)求的具體URL路徑;rootUrl表示請(qǐng)求的URL

-?(AFConstructingBlock)constructingBodyBlock;

當(dāng)需要上傳文件時(shí)可以使用

-?(void)cancel;

取消當(dāng)前的NSURLSessionTask對(duì)象,也就是取消這次請(qǐng)求

發(fā)送一個(gè)GET請(qǐng)求

只要分別子類化YiBaseRequest和YiBaseModel,在上層使用就非常簡(jiǎn)單

//通過(guò)GET請(qǐng)求獲取用戶信息
????YiGetUserInfoRequest?*getUserInfoRequest=[[YiGetUserInfoRequest?alloc]?init];
????[getUserInfoRequest?requestWithSuccess:^(YiBaseModel?*model,NSURLSessionTask?*task){
????????
????????NSLog(@"username?is?%@",((YiUserInfoModel?*)model).name);
????????
????}?failure:^(NSError?*error,NSURLSessionTask?*task){
????????
????}];

子類化YiBaseModel為YiUserInfoModel

@interface?YiUserInfoModel?:?YiBaseModel
@property(nonatomic,strong)?NSString?*name;
@end

子類化YiBaseRequest為YiGetUserInfoRequest

@implementation?YiGetUserInfoRequest
-(instancetype)init{
????self?=?[super?init];
????if?(self)?{
????????
????}
????return?self;
}
-(instancetype)initWithNameId:(NSString?*)nameId?{
????self?=?[super?init];
????if?(self)?{
????????
????????[self.getParams?setValue:nameId?forKey:@"name_id"];
????????
????}
????return?self;
}
-?(NSString?*)pathName
{
????return?@"users/coderyi";
}
-?(YiHTTPRequestMethod)requestMethod
{
????return?YiHTTPRequestMethodGet;
}
-?(YiBaseModel?*)responseModelWithData:(id)data
{
????
????return?[[YiUserInfoModel?alloc]?initWithDictionary:data?error:nil];
}
@end

發(fā)送一個(gè)POST請(qǐng)求

//通過(guò)POST請(qǐng)求修改用戶信息
????YiModifyUserInfoRequest?*modifyUserInfoRequest=[[YiModifyUserInfoRequest?alloc]?initWithNameId:@"coderyi"];
????[modifyUserInfoRequest?requestWithSuccess:^(YiBaseModel?*model,NSURLSessionTask?*task){
????????
????????NSLog(@"username?is?%@",((YiUserInfoModel?*)model).name);
????????
????}?failure:^(NSError?*error,NSURLSessionTask?*task){
????????
????}];

子類化YiBaseRequest為YiModifyUserInfoRequest

@implementation?YiModifyUserInfoRequest
-(instancetype)initWithNameId:(NSString?*)nameId?{
????self?=?[super?init];
????if?(self)?{
????????
????????[self.postParams?setValue:nameId?forKey:@"name_id"];
????????
????}
????return?self;
}
-?(NSString?*)pathName
{
????return?@"users/coderyi";
}
-?(YiHTTPRequestMethod)requestMethod
{
????return?YiHTTPRequestMethodPost;
}
-?(YiBaseModel?*)responseModelWithData:(id)data
{
????
????return?[[YiUserInfoModel?alloc]?initWithDictionary:data?error:nil];
}

@end

上傳圖片

?//上傳一張圖片
????????UIImage?*image;
????????YiUploadImageRequest?*uploadImageRequest=[[YiUploadImageRequest?alloc]?initWithImage:image];
????????[uploadImageRequest?requestWithSuccess:^(YiBaseModel?*model,NSURLSessionTask?*task){
????????????NSLog(@"model?is?%@",model);
????
????????}?failure:^(NSError?*error,NSURLSessionTask?*task){
????????????
????????}];

子類化YiBaseRequest為YiUploadImageRequest

@implementation?YiUploadImageRequest{
????UIImage?*_image;
}


-?(id)initWithImage:(UIImage?*)image?{
????self?=?[super?init];
????if?(self)?{
????????_image?=?image;
????}
????return?self;
}
-?(AFConstructingBlock)constructingBodyBlock?{
????return?^(id?formData)?{
????????NSData?*data?=?UIImageJPEGRepresentation(_image,?0.9);
????????NSString?*name?=?@"image";
????????NSString?*formKey?=?@"image";
????????NSString?*type?=?@"image/jpeg";
????????[formData?appendPartWithFileData:data?name:formKey?fileName:name?mimeType:type];
????};
}
@end
?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開(kāi)發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)