{"id":27887499,"url":"https://github.com/wangrui460/wrnetwork","last_synced_at":"2025-07-02T14:36:18.952Z","repository":{"id":264141344,"uuid":"90270644","full_name":"wangrui460/WRNetwork","owner":"wangrui460","description":"WRNetwork 是基于 AFNetworking 封装的一套网络请求框架","archived":false,"fork":false,"pushed_at":"2021-10-21T02:24:29.000Z","size":1159,"stargazers_count":27,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-05T08:06:44.096Z","etag":null,"topics":["afnetworking","network","ytknetwork"],"latest_commit_sha":null,"homepage":"https://www.jianshu.com/p/b7af1baf912c","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wangrui460.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-04T14:05:45.000Z","updated_at":"2024-08-31T16:52:27.000Z","dependencies_parsed_at":"2024-11-22T09:15:12.655Z","dependency_job_id":null,"html_url":"https://github.com/wangrui460/WRNetwork","commit_stats":null,"previous_names":["wangrui460/wrnetwork"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wangrui460/WRNetwork","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wangrui460%2FWRNetwork","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wangrui460%2FWRNetwork/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wangrui460%2FWRNetwork/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wangrui460%2FWRNetwork/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wangrui460","download_url":"https://codeload.github.com/wangrui460/WRNetwork/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wangrui460%2FWRNetwork/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263157361,"owners_count":23422603,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["afnetworking","network","ytknetwork"],"created_at":"2025-05-05T08:06:41.042Z","updated_at":"2025-07-02T14:36:18.923Z","avatar_url":"https://github.com/wangrui460.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"## WRNetwork\n\nWRNetwork 是基于 AFNetworking 封装的一套网络请求框架。\n\n\n## 功能\n\n- [x] 支持 文件上传和下载\n- [x] 支持 GET / POST / DELETE / PUT / HEAD / PATCH 六种请求方式\n- [x] 支持 block 和 代理 两种回调请求方式\n- [x] 支持 网络请求结果缓存\n- [x] 支持 分页请求数据缓存\n- [x] 支持 添加缓存过期时间\n- [x] 支持 批量请求数据\n\n\n## 推荐\n\u003cimg src=\"https://github.com/wangrui460/WRNetwork/raw/master/screenshots/WRApis.png\" alt=\"\"\u003e\n\n\n## 使用\n\n推荐使用方式请看文件 WRApis.h/m\n\n发起网络请求（这里会立即发起请求）\n\u003cpre\u003e\u003ccode\u003e\nself.reqWXList = req_wx_list(_curPage, self);\n\u003c/code\u003e\u003c/pre\u003e\n\n请求 成功 / 失败 / 获取缓存 回调\n\u003cpre\u003e\u003ccode\u003e\n#pragma mark - WRNetWrapperRequestDelegate\n- (void)netWrapperRequestDidSuccess:(WRNetWrapper *)netWrapper {\n    if (netWrapper == _reqWXList) {\n        NSDictionary *dict = netWrapper.data;\n        [self handleResponse:dict];\n        _reqWXList = nil;\n    }\n}\n\n- (void)netWrapperRequestDidFailed:(WRNetWrapper *)netWrapper {\n    if (netWrapper == _reqWXList) {\n        [self.tableView.mj_footer endRefreshing];\n        _reqWXList = nil;\n    }\n}\n\n- (void)netWrapperGetCacheDidFinished:(WRNetWrapper *)netWrapper {\n    NSDictionary *dict = netWrapper.cache;\n    [self handleResponse:dict];\n}\n\u003c/code\u003e\u003c/pre\u003e\n\n批量网络请求使用方式\n\u003cpre\u003e\u003ccode\u003e\n// ⚠️ 需要注意，这里不会立即发起请求（实现方式请看WRApis.m）\n_reqTestA = req_test_a(self);\n_reqTestB = req_test_b(self);\n_reqTestC = req_test_c(self);\n_reqTestD = req_test_d(self);\n_reqTestE = req_test_e(self);\n_reqTestF = req_test_f(self);\n\n// 生成多请求对象\n_multiReq = [[WRMultiRequest alloc] initWithRequestArray:@[_reqTestA,_reqTestB,_reqTestC,_reqTestD,_reqTestE,_reqTestF]\n                                                delegate:self];\n// 立即发起请求\n[_multiReq loadRequests];\n\u003c/code\u003e\u003c/pre\u003e\n\n批量请求 成功 / 失败 回调\n\u003cpre\u003e\u003ccode\u003e\n#pragma mark - WRMultiRequestDelegate\n- (void)multiRequestDidSuccess:(WRMultiRequest *)multiRequest {\n    NSLog(@\"批量请求全部完成~\");\n}\n\n- (void)multiRequestDidFailed:(WRMultiRequest *)multiRequest {\n    NSLog(@\"批量请求出错~\");\n}\n\u003c/code\u003e\u003c/pre\u003e\n\n\n当然你也可以使用 block 的方式\n\u003cpre\u003e\u003ccode\u003e\n- (WRNetWrapper *)requestWithURL:(NSString *)urlStr\n                      parameters:(NSDictionary *)parameters\n                      httpMethod:(WRNetWrapperHTTPMethod)httpMethod\n                         isCache:(BOOL)isCache\n                       cacheTime:(NSTimeInterval)cacheTime\n                           cache:(WRNetWrapperGetCacheBlock)cache\n                         success:(WRNetWrapperRequestDidSuccessBlock)success\n                         failure:(WRNetWrapperRequestDidFailedBlock)failure;\n\u003c/code\u003e\u003c/pre\u003e\n\n上传文件\n\u003cpre\u003e\u003ccode\u003e\n+ (__kindof NSURLSessionTask *)uploadWithURL:(NSString *)urlStr\n                                  parameters:(id)parameters\n                                        name:(NSString *)name\n                                    filePath:(NSString *)filePath\n                                    progress:(WRNetWrapperProgress)progress\n                                     success:(WRNetWrapperRequestDidSuccessBlock)success\n                                     failure:(WRNetWrapperRequestDidFailedBlock)failure;\n\u003c/code\u003e\u003c/pre\u003e\n\n下载文件\n\u003cpre\u003e\u003ccode\u003e\n+ (__kindof NSURLSessionTask *)downloadWithURL:(NSString *)urlStr\n                                       fileDir:(NSString *)fileDir\n                                      progress:(WRNetWrapperProgress)progress\n                                       success:(void(^)(NSString *filePath))success\n                                       failure:(WRNetWrapperRequestDidFailedBlock)failure;\n\u003c/code\u003e\u003c/pre\u003e\n\n\n## 安装\n\n将 WRNetwork 文件夹拽入项目中，导入头文件：#import \"WRNetwork.h\"\n\n## 协议\n\nWRNetwork 被许可在 MIT 协议下使用\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwangrui460%2Fwrnetwork","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwangrui460%2Fwrnetwork","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwangrui460%2Fwrnetwork/lists"}