拓冰建站拓冰建站
首页 / 资讯中心 / 正文

HYBNetworking的GET与POST请求全解:5种常见用法与参数传递技巧

HYBNetworking的GET与POST请求全解5种常见用法与参数传递技巧【免费下载链接】HYBNetworking基于AFNetworking3.0以上版本封装的网络层。提供常用的GET/POST接口、上传下载图片、文件接口、支持缓存等。项目地址: https://gitcode.com/gh_mirrors/hy/HYBNetworkingHYBNetworking 是一个基于 AFNetworking 3.0 以上版本封装的 iOS 网络层库封装了常用的 GET / POST 请求、图片与文件上传下载、请求缓存等能力。本文带你用 5 种常见用法快速掌握 HYBNetworking 的 GET 与 POST 请求并总结参数传递的关键技巧新手也能一看就会。一、HYBNetworking 是什么如何5分钟安装HYBNetworking 的核心思路是在 AFNetworking 之上再包一层傻瓜式API让你不用关心AFHTTPSessionManager的配置细节直接一行代码发请求。它额外提供了✅ 常用的GET / POST 请求接口支持进度回调✅自动缓存GET 默认缓存POST 可手动开启✅公共请求头一键配置、超时时间可设置✅ 图片 / 文件上传、文件下载、取消单个或全部请求源码非常精简核心实现只有两个文件头文件HYBNetworking/HYBNetworking.h实现文件HYBNetworking/HYBNetworking.m安装方式二选一# 1. 通过 CocoaPods 安装推荐 pod HYBNetworking, ~ 3.3.0# 2. 获取源码 git clone https://gitcode.com/gh_mirrors/hy/HYBNetworking二、发送请求前的 3 个全局配置所有请求都是类方法调用使用前建议在 App 启动时如AppDelegate做一次全局配置之后就不用管了// 1. 设置基础 URL之后传参时只需写接口路径 [HYBNetworking updateBaseUrl:http://apis.example.com]; // 2. 配置请求/响应格式默认请求为 plainText响应为 JSON [HYBNetworking configRequestType:kHYBRequestTypePlainText responseType:kHYBResponseTypeJSON shouldAutoEncodeUrl:YES callbackOnCancelRequest:NO]; // 3. 配置公共请求头如 token只需调用一次 [HYBNetworking configCommonHttpHeaders:{token: your_token}]; 其他常用全局开关配置方法作用默认值setTimeout:请求超时时间60 秒cacheGetRequest:shoulCachePost:是否缓存 GET / POSTYES / NOobtainDataFromLocalWhenNetworkUnconnected:无网时是否自动读缓存NOautoToClearCacheWithLimitedToSize:缓存上限MB超限自动清理0不清理enableInterfaceDebug:开发期打印接口日志NO三、GET 请求的 3 种常见写法用法 1最简单的 GET无参数如果没设置过 baseUrl也可以直接传完整 URL[HYBNetworking getWithUrl:/article/list refreshCache:NO success:^(id response) { NSLog(请求成功%, response); } fail:^(NSError *error) { NSLog(请求失败%, error); }];用法 2GET 带拼接参数通过params传字典HYBNetworking 会自动把参数拼接到 URL 上如?categoryid12page1[HYBNetworking getWithUrl:/article/list refreshCache:NO params:{categoryid: (12), page: (1)} success:^(id response) { // ... } fail:nil];用法 3GET 带进度回调适合响应体较大的接口progress中回调已下载 / 总字节数[HYBNetworking getWithUrl:/report/detail refreshCache:NO params:nil progress:^(int64_t bytesRead, int64_t totalBytesRead) { NSLog(下载进度%.2f%%, (bytesRead * 100.0) / totalBytesRead); } success:nil fail:nil];四、POST 请求的 2 种常见写法用法 4标准 POST带参数POST 的参数通过params字典传递会放入请求体中NSDictionary *params {username: jack, password: 123456}; [HYBNetworking postWithUrl:/user/login refreshCache:YES params:params success:^(id response) { // 登录成功response 一般是 NSDictionary } fail:^(NSError *error) { // 处理失败 }];用法 5POST 带进度回调[HYBNetworking postWithUrl:/user/register refreshCache:NO params:params progress:^(int64_t bytesWritten, int64_t totalBytesWritten) { // 更新进度条 } success:nil fail:nil];五、参数传递的 4 个实用技巧技巧 1GET 参数拼接进 URLPOST 参数进请求体。这也是为什么 GET 适合查询、POST 适合提交。技巧 2注意默认请求格式。3.2.3 版本起默认请求格式改为plainTextform 表单正是因为不少开发者遇到后台收不到 JSON 参数的问题。如果你的服务器要求 JSON记得改成[HYBNetworking configRequestType:kHYBRequestTypeJSON responseType:kHYBResponseTypeJSON shouldAutoEncodeUrl:YES callbackOnCancelRequest:NO];技巧 3URL 里有中文开启自动编码。把shouldAutoEncodeUrl设为 YES中文参数会自动百分号编码避免请求直接失败。技巧 4数字、日期等参数用对象包装。比如页码(1)、金额(99.5)都可以直接作为字典 value 传入无需手动转字符串。官方示例可参考AFNetworkingDemo/ViewController.m中的 GET / POST 调用。六、缓存与取消请求进阶但常用HYBNetworking 默认只缓存 GET 请求缓存按URL参数的 MD5 作为文件名保存在沙盒Documents/HYBNetworkingCaches目录。// 让 POST 也缓存 [HYBNetworking cacheGetRequest:YES shoulCachePost:YES]; // 每次强制刷新不读缓存拉完重新写入 [HYBNetworking getWithUrl:url refreshCache:YES params:params success:nil fail:nil]; // 查看缓存总大小 / 清空缓存 NSLog(%llu, [HYBNetworking totalCacheSize]); [HYBNetworking clearCaches];取消请求有两种方式// 方式一保存返回的 task直接 cancel HYBURLSessionTask *task [HYBNetworking getWithUrl:url refreshCache:NO success:nil fail:nil]; [task cancel]; // 方式二不想引用对象时按 URL 取消 [HYBNetworking cancelRequestWithURL:/article/list]; // 也可以一键取消所有请求 [HYBNetworking cancelAllRequest];七、新手避坑3 个高频问题请求失败且 error code 为负数通常是断网或超时。此时如果开启了缓存框架会自动尝试从本地缓存读取数据而不是抛错——这是特性不是 bug。后台收到的是字符串而不是 JSON检查响应类型默认是 JSON若接口返回非 JSON如纯文本可把responseType配成kHYBResponseTypeData拿到NSData后自行解析。取消请求后还要不要回调由callbackOnCancelRequest控制默认 YES。页面跳转频繁、不想收到被取消错误时可设为 NO。八、速查表与总结场景推荐 API关键参数查列表无参getWithUrl:refreshCache:success:fail:refreshCache:NO查列表带参getWithUrl:refreshCache:params:...params字典大响应下载GET 带progress:进度回调表单提交postWithUrl:refreshCache:params:...params字典需要进度POST 带progress:进度回调总结HYBNetworking 把 AFNetworking 最麻烦的 Manager 配置、缓存、请求头、日志全部收敛为类方法GET / POST 只需要路径 参数 回调三件套。记住三点就能覆盖 90% 的日常开发先配好 baseUrl 和公共请求头之后所有请求只写路径GET 传查询参数、POST 传提交参数注意服务器要求的请求格式plainText / JSON善用缓存和取消接口用refreshCache:YES刷新数据、用返回的 task 或 URL 取消请求。更多 API图片上传、文件上传下载的完整声明可直接查阅HYBNetworking/HYBNetworking.h每个方法都有详细的中文注释。【免费下载链接】HYBNetworking基于AFNetworking3.0以上版本封装的网络层。提供常用的GET/POST接口、上传下载图片、文件接口、支持缓存等。项目地址: https://gitcode.com/gh_mirrors/hy/HYBNetworking创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门