Coder Social home page Coder Social logo

coderjackyhuang / hybnetworking Goto Github PK

View Code? Open in Web Editor NEW
583.0 24.0 168.0 698 KB

基于AFNetworking3.0以上版本封装的网络层。提供常用的GET/POST接口、上传下载图片、文件接口、支持缓存等。

License: MIT License

Objective-C 97.85% Ruby 2.15%

hybnetworking's Introduction

HYBNetworking

基于AFNetworking封装的网络层,支持自由配置请求头,自动缓存及可设置自动清除策略,支持常用的GET/POST/单文件上传、下载功能等,详情可以阅读文章讲解!

#安装

pod 'HYBNetworking', '~> 3.3.0'

#文章讲解

笔者的个人博客发表的讲解的文章:基于AFNetworkgin2.5.2的网络封装,此版本不再维护!

另外,最新更新到基于AFN3.0版本的,请阅读:基于AFNetworking3.0的网络封装

#关注我

如果在使用过程中遇到问题,或者想要与我交流,可加入有问必答QQ群:324400294
关注微信公众号:iOSDevShares
关注博客:http://www.henishuo.com/

#LISENCE

MIT

#历史版本变化

  • 1.1
    • 升级AFNetworking到2.5.4
    • 新增带上传进度的API和带进度的下载API,详细请阅读下面的博文
  • 1.1.1
    • 修改原来默认URLEncode由YES改为NO。
  • 1.1.2
    • 追加text/plain格式
  • 1.1.3
    • 追加两个兼容性API,图片上传时可额外上传参数
  • 2.0.0
    • 升级AFNetworking到3.0,基于AFNetworking3.0.4而写的版本
    • 支持iOS7.0及其以上版本
  • 2.0.1
    • fix pod安装2.0.0却是1.1.3版本的问题
  • 3.0.0
    • 简化API,以降低使用的要求
    • 增加GET/POST数据缓存、获取缓存大小、清空缓存功能
    • 接口增加刷新缓存功能
    • 增加取消所有请求、取消单个请求功能
    • 格式化打印日志
    • 增加对手动取消请求接口是否在失败时还回调的控制
  • 3.1.0
    • fix download data can't start request.
  • 3.2.0
    • 增加请求超时设置
    • 增加配置是否在网络异常(无网络)时自动尝试从本地读取缓存。
  • 3.2.1
    • 完善无网状态下缓存的处理
  • 3.2.2
    • 将download url存储修改
  • 3.2.3
    • 修改默认requestType为plainText,以解决很多小伙伴们出现后台接收不到参数的问题!
  • 3.3.0
    • 修改AFSessionManager获取方式为只使用一个,除非修改了BASEURL,否则一直使用同一个
    • 增加了自动清除缓存的策略,由开发者决定是否自动清除缓存,可设置上限大小

hybnetworking's People

Contributors

coderjackyhuang avatar jonhory avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hybnetworking's Issues

如果需要传多张图片

我发现你封装的api目前只有上传单张图片,如果传多张图是循环调用那个接口吗?还是传个数组然后循环调用appenddata方法就好?

假若支持接口缓存超时时间,那就更好了

大概的思路如下:
接口缓存超时时间:kAPICacheTimeOut
第一次请求用户详情接口的时间戳:timestampA
第二次请求用户详情接口的时间戳:timestampB

timestampA-timestampB<= kAPICacheTimeOut,则直接获取本地缓存数据;
timestampA-timestampB> kAPICacheTimeOut,则直接获取网络数据;

*注:每次请求接口都将请求的时间戳缓存在本地

上传文件的问题

为什么上传文件接口中uploadingFile参数转换成NSURL类型不是用[NSURL fileURLWithPath:uploadingFile]而是用[NSURL URLWithString:uploadingFile]?

有一个API需要更新!谢谢

HYBNetworking.m line 500 (+ (NSString *)hyb_URLEncode:(NSString *)url )

【CFStringRef CFURLCreateStringByAddingPercentEscapes(CFAllocatorRef allocator, CFStringRef originalString, CFStringRef charactersToLeaveUnescaped, CFStringRef legalURLCharactersToBeEscaped, CFStringEncoding encoding) CF_DEPRECATED(10_0, 10_11, 2_0, 9_0, "Use [NSString stringByAddingPercentEncodingWithAllowedCharacters:] instead, which always uses the recommended UTF-8 encoding, and which encodes for a specific URL component or subcomponent (since each URL component or subcomponent has different rules for what characters are valid).");】

updateBaseUrl判断

在+ (void)updateBaseUrl:(NSString *)baseUrl {
if ([baseUrl isEqualToString:sg_privateNetworkBaseUrl] && baseUrl && baseUrl.length) {
sg_isBaseURLChanged = YES;
} else {
sg_isBaseURLChanged = NO;
}

sg_privateNetworkBaseUrl = baseUrl;
}
这里第一个判断条件 [baseUrl isEqualToString:sg_privateNetworkBaseUrl] 是否应该添加非操作,只有新的baseURL与原来的baseURL不一样的时候,才可以证明baseURLchanged,请问是这样吗?

小建议

标哥可以增加mdprogresshud或svprogresshud,整合hud和网络请求之间的状态

如何处理304

大神,我现在项目用到你的这个进行数据请求的,项目需要考虑304进行缓存,能给点建议吗

内存泄露

在使用的过程中发现多有关于网络请求的都会照成内存泄露 怎么解决呢

请求中止时,返回的错误信息是什么?

最近遇到的问题是,网络请求失败后返回的错误信息: error.localizedDescription 为 “已取消”,这个问题是否为在error.code == NSURLErrorCancelled时造成的?
我们本地适配的错误类型 提示语没有这个信息

参数传不过去

1.在进行Post或者Get请求时,在原有的+ (AFHTTPSessionManager *)manager进行创建时,参数传不到服务器,但是用原生的AFHTTPSessionManager创建就可以将参数传过去
2.难道大家在使用的时候都没有发现?感觉好郁闷啊...

怎么在请求失败的回调里面打印statuscode

还有就是客户端要用这个 返回的状态码去判断用户在线状态。然后做操作。这块写那个方法最好?+ (void)logWithFailError:(NSError *)error url:(NSString *)url params:(id)params ? 还是+ (void)handleCallbackWithError:(NSError *)error fail:(XMResponseFail)fail ?

多图上传

目前好像只支持单图上传啊,如果使用for循环多图上传,那么上传进度就会有问题

about steaming upload

@CoderJackyHuang
hi, i want ask some question about streaming upload, this is the problem for me.
the method you provide still need transfer image to nsdata, how about my file is big enough to make app crash.

our app is support iOS 7, and support video upload, when you file is big enough, the app will crash.

thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.