在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>開源軟件-YiNetwork HTTP請求封裝庫

開源軟件-YiNetwork HTTP請求封裝庫

2022-06-28 | zip | 0.03 MB | 次下載 | 免費

資料介紹

授權協議 MIT
開發語言 Objective-C
軟件類型 開源軟件
所屬分類 iOS代碼庫網絡(Networking)

軟件簡介

YiNetwork是一個的HTTP請求封裝庫,基于AFNetworking的AFHTTPSessionManager。

YiNetwork主要是一個基類庫,主要是兩個類YiBaseRequest和YiBaseModel.

之所以創建兩個基類,是為了讓各個請求之間的耦合性降低,能夠非常簡單的實現一個請求,并且在上層很簡單調用一個請求。每一個請求一個子類也非常能夠方便團隊協作,每個人都可以管理自己的請求模塊。

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

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

Podfile

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

YiBaseModel

YiBaseModel繼承自第三方庫JSONModel,當然你也可以不用使用它,自己解析JSON數據或者其它格式的數據

YiBaseRequest

YiBaseRequest必須子類化

屬性

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

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

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

retryCount表示請求出錯時重試的次數,默認為0;retryIndex表示正在重試第幾次

方法

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

數據請求的方法,只要在上層調用該方法就可以獲得請求成功或者失敗的反饋,以得到YiBaseModel的數據。

-?(YiHTTPRequestMethod)requestMethod;

需要實現的子類方法,表示請求方法,默認是YiHTTPRequestMethodGet為GET請求

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

處理請求到得數據

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

pathName表示請求的具體URL路徑;rootUrl表示請求的URL

-?(AFConstructingBlock)constructingBodyBlock;

當需要上傳文件時可以使用

-?(void)cancel;

取消當前的NSURLSessionTask對象,也就是取消這次請求

發送一個GET請求

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

//通過GET請求獲取用戶信息
????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

發送一個POST請求

//通過POST請求修改用戶信息
????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
?

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

評論

查看更多

下載排行

本周

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

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 午夜免费视频福利集合100| 一级片高清| 国产网站在线| 特黄特色三级在线观看| 日本亚洲在线| 久久 在线播放| 亚洲综合区图片小说区| 性xxxfreexxxx性欧美| 欧美久久天天综合香蕉伊| 清纯唯美亚洲综合一区| 久草资源网| 国产黄色视屏| 国产免费久久| 亚洲光棍天堂| 99精品热| 四虎网站| 久久综合欧美成人| 欧美成人三级伦在线观看| 久久综合九九亚洲一区| 成人一二| 日本在线一本| 欧美猛操| 精品欧美| 欧美xxxx性疯狂bbbb| 爽好舒服快给老师| 亚洲美女视频一区| 亚洲天堂最新地址| 日本色高清| 欧美日韩一日韩一线不卡| 日韩免费观看一级毛片看看| 天堂中文字幕| 亚洲国产精品乱码在线观看97| 男女交性视频播放视频视频| 亚洲人成电影在线| 起碰免费视频| 毛片免费网站| 99久久网站| 亚洲qingse中文字幕久久 | susu成人影院| 亚洲高清色图| 久久婷婷国产精品香蕉|