chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

電子發(fā)燒友App

硬聲App

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

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

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

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

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

資料介紹

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

軟件簡介

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

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

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

另外,由于Apple在網(wǎng)絡(luò)請求方面由NSURLConnection(iOS 2-9)轉(zhuǎn)向NSURLSession(iOS7以上),隨之AFNetworking 3.0也就廢棄了NSURLConnection相關(guān)的 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,當(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表示請求出錯時重試的次數(shù),默認(rèn)為0;retryIndex表示正在重試第幾次

方法

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

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

-?(YiHTTPRequestMethod)requestMethod;

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

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

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

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

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

-?(AFConstructingBlock)constructingBodyBlock;

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

-?(void)cancel;

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

發(fā)送一個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

發(fā)送一個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. 1PFC電路與BOOST電路設(shè)計實例分享
  2. 1.83 MB   |  12次下載  |  4 積分
  3. 2世平基于靈動微 SPIN560C 的低壓無刷電機應(yīng)用方案
  4. 10.93 MB  |  11次下載  |  免費
  5. 3電源測試報告-基于 國民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
  6. 6.47 MB  |  11次下載  |  免費
  7. 4PWM控制器的控制方法
  8. 0.39 MB   |  3次下載  |  4 積分
  9. 5電流檢測芯片F(xiàn)P135應(yīng)用說明
  10. 1.24 MB   |  3次下載  |  免費
  11. 6全面解讀被動式與主動式PFC電路
  12. 1.27 MB   |  1次下載  |  4 積分
  13. 7HC88L051F4低功耗芯片規(guī)格書
  14. 4.76 MB  |  1次下載  |  免費
  15. 8CIU32D655x5數(shù)據(jù)手冊
  16. 2.14 MB   |  1次下載  |  免費

本月

  1. 1常用電子元器件使用手冊
  2. 2.40 MB   |  52次下載  |  免費
  3. 2高功率密度碳化硅MOSFET軟開關(guān)三相逆變器損耗分析
  4. 2.27 MB   |  33次下載  |  10 積分
  5. 3PFC電路與BOOST電路設(shè)計實例分享
  6. 1.83 MB   |  12次下載  |  4 積分
  7. 4世平基于靈動微 SPIN560C 的低壓無刷電機應(yīng)用方案
  8. 10.93 MB  |  11次下載  |  免費
  9. 5電源測試報告-基于 國民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
  10. 6.47 MB  |  11次下載  |  免費
  11. 6USB拓展塢PCB圖資料
  12. 0.57 MB   |  11次下載  |  免費
  13. 7MS1826 HDMI 多功能視頻處理器數(shù)據(jù)手冊
  14. 4.51 MB   |  9次下載  |  免費
  15. 8HAL9303線性霍爾效應(yīng)傳感器技術(shù)手冊
  16. 0.70 MB   |  9次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935134次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191424次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183352次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81600次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費下載
  14. 0.02 MB  |  73818次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分