使用AFNetworking访问HTTP接口,怎么使用自己的加密方法加密请求参数

公司安全部开发了新的加密模块,要求公司所有HTTP访问接口均使用该加密模块,手里一个app还使用明文访问方式,所以,改吧。
app使用了AFNetworking访问HTTP,并且很多模块使用了该库,加密方法也不相同,所以,不能修改库源码添加加密代码。研究了一下,发现也很简单,只需要设置一下,就OK了,上代码:

_afManager = [AFHTTPSessionManager manager];
_afManager.operationQueue.maxConcurrentOperationCount = 100;
// 这里要使用AFHTTPRequestSerializer,如果使用AFJSONRequestSerializer,则不会调用下面设置的block。
_afManager.requestSerializer = [AFHTTPRequestSerializer serializer];
[_afManager.requestSerializer willChangeValueForKey:@"timeoutInterval"];
_afManager.requestSerializer.timeoutInterval = 20;//设置请求超时时间
[_afManager.requestSerializer didChangeValueForKey:@"timeoutInterval"];
[_afManager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
// 这里设置的block,会被调用,在block里面加密即可
[_afManager.requestSerializer setQueryStringSerializationWithBlock:^NSString * _Nonnull(NSURLRequest * _Nonnull request, id  _Nonnull parameters, NSError * _Nullable __autoreleasing * _Nullable error) {
        NSString *willEncodeStr = [YHLUtil getJsonWithNSDictionary:parameters];
        // 这里添加加密的代码
            
        // 返回已加密的字符串
        return didEncodeStr;
}];

这样设置之后,加密的block就会在创建Request的时候被调用,AFNetworking真蛮好用!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,323评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,150评论 19 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 16,666评论 4 61
  • 移动阅读之网易蜗牛读书 这是知识付费的时代,得到、知乎、分答、微信读书如雨后春笋般涌现,同之前的网易云音乐一样,网...
    EstelleLYL阅读 1,074评论 0 1
  • 今天准备写这个话题,其实我内心很纠结。 或许对于标题很多人会觉得太过绝对。但是,现实生活告诉我们,总是那些我们眼中...
    暮光fillette阅读 819评论 0 1

友情链接更多精彩内容