AFNetWorking3.0 上传图片 和 简单封装

2024-03-27 12:38

本文主要是介绍AFNetWorking3.0 上传图片 和 简单封装,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上传图片
- ( void )saveImage:(UIImage *)image
{
    

    NSString *url =
  @"" ; // 放上传图片的网址
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
// 初始化请求对象
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
// 设置服务器允许的请求格式内容
   
  // 上传图片 / 文字,只能同 POST
    [manager POST:url parameters:
nil  constructingBodyWithBlock:^( id    _Nonnull  formData) {
       
  // 对于图片进行压缩
       
  //UIImage *image = [UIImage imageNamed:@"111"];
        NSData *data = UIImageJPEGRepresentation(image,
  0.1 );
       
  //NSData *data = UIImagePNGRepresentation(image);
       
  // 第一个代表文件转换后 data 数据,第二个代表图片的名字,第三个代表图片放入文件夹的名字,第四个代表文件的类型
        [formData appendPartWithFileData:data name:
@"1"  fileName: @"image.jpg" mimeType: @"image/jpg" ];
    } progress:^(NSProgress *
  _Nonnull  uploadProgress) {
        NSLog(
@"uploadProgress = %@" ,uploadProgress);
    } success:^(NSURLSessionDataTask *
  _Nonnull  task,  id    _Nullable  responseObject) {
        NSLog(
@"responseObject = %@, task = %@" ,responseObject,task);
//        id obj = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil];
//        NSLog(@"obj = %@",obj);
     
    } failure:^(NSURLSessionDataTask *  _Nullable  task, NSError *  _Nonnull  error) {
        NSLog(
@"error = %@" ,error);
    }];
 
}


简单封装
typedef void(^SuccessBlock)(id data);
typedef  void (^FailBlock)( NSError  *error);

//网络请求数据
+ (
void)sendGETWithUrl:(NSString *)url parameters:(NSDictionary *)dict success:(SuccessBlock)successBlock fail:(FailBlock)failBlock
{
   
 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
   
    manager.
responseSerializer = [AFHTTPResponseSerializer serializer];
   
    [manager
 GET:url parameters:dict progress:^(NSProgress * _Nonnull downloadProgress) {
       
    }
 success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        successBlock(responseObject);
    }
 failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        failBlock(error);
    }];
   
}

+ (
void)sendPOSTWithUrl:(NSString *)url parameters:(NSDictionary *)dict success:(SuccessBlock)successBlock fail:(FailBlock)failBlock
{
   
 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
   
    manager.
responseSerializer = [AFHTTPResponseSerializer serializer];
   
    [manager
 POST:url parameters:dict progress:^(NSProgress * _Nonnull uploadProgress) {
       
    }
 success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        successBlock(responseObject);
    }
 failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        failBlock(error);
    }];
}

+ (
void)sendPOSTWithUrlStr:(NSString *)url parameters:(NSString *)string success:(SuccessBlock)successBlock fail:(FailBlock)failBlock{
   
 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    manager.
responseSerializer = [AFHTTPResponseSerializer serializer];
    [manager
 POST:url parameters:string progress:^(NSProgress * _Nonnull uploadProgress) {
       
    }
 success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        successBlock(responseObject);
    }
 failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        failBlock(error);
    }];
   
}

这篇关于AFNetWorking3.0 上传图片 和 简单封装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/852129

相关文章

基于Python编写一个git自动上传的脚本(打包成exe)

《基于Python编写一个git自动上传的脚本(打包成exe)》这篇文章主要为大家详细介绍了如何基于Python编写一个git自动上传的脚本并打包成exe,文中的示例代码讲解详细,感兴趣的小伙伴可以跟... 目录前言效果如下源码实现利用pyinstaller打包成exe利用ResourceHacker修改e

Python中Request的安装以及简单的使用方法图文教程

《Python中Request的安装以及简单的使用方法图文教程》python里的request库经常被用于进行网络爬虫,想要学习网络爬虫的同学必须得安装request这个第三方库,:本文主要介绍P... 目录1.Requests 安装cmd 窗口安装为pycharm安装在pycharm设置中为项目安装req

input的accept属性让文件上传安全高效

《input的accept属性让文件上传安全高效》文章介绍了HTML的input文件上传`accept`属性在文件上传校验中的重要性和优势,通过使用`accept`属性,可以减少前端JavaScrip... 目录前言那个悄悄毁掉你上传体验的“常见写法”改变一切的 html 小特性:accept真正的魔法:让

SpringBoot简单整合ElasticSearch实践

《SpringBoot简单整合ElasticSearch实践》Elasticsearch支持结构化和非结构化数据检索,通过索引创建和倒排索引文档,提高搜索效率,它基于Lucene封装,分为索引库、类型... 目录一:ElasticSearch支持对结构化和非结构化的数据进行检索二:ES的核心概念Index:

Java使用Spire.Doc for Java实现Word自动化插入图片

《Java使用Spire.DocforJava实现Word自动化插入图片》在日常工作中,Word文档是不可或缺的工具,而图片作为信息传达的重要载体,其在文档中的插入与布局显得尤为关键,下面我们就来... 目录1. Spire.Doc for Java库介绍与安装2. 使用特定的环绕方式插入图片3. 在指定位

GO语言实现串口简单通讯

《GO语言实现串口简单通讯》本文分享了使用Go语言进行串口通讯的实践过程,详细介绍了串口配置、数据发送与接收的代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录背景串口通讯代码代码块分解解析完整代码运行结果背景最近再学习 go 语言,在某宝用5块钱买了个

SpringBoot整合Apache Spark实现一个简单的数据分析功能

《SpringBoot整合ApacheSpark实现一个简单的数据分析功能》ApacheSpark是一个开源的大数据处理框架,它提供了丰富的功能和API,用于分布式数据处理、数据分析和机器学习等任务... 目录第一步、添加android依赖第二步、编写配置类第三步、编写控制类启动项目并测试总结ApacheS

Python多任务爬虫实现爬取图片和GDP数据

《Python多任务爬虫实现爬取图片和GDP数据》本文主要介绍了基于FastAPI开发Web站点的方法,包括搭建Web服务器、处理图片资源、实现多任务爬虫和数据可视化,同时,还简要介绍了Python爬... 目录一. 基于FastAPI之Web站点开发1. 基于FastAPI搭建Web服务器2. Web服务

C++简单日志系统实现代码示例

《C++简单日志系统实现代码示例》日志系统是成熟软件中的一个重要组成部分,其记录软件的使用和运行行为,方便事后进行故障分析、数据统计等,:本文主要介绍C++简单日志系统实现的相关资料,文中通过代码... 目录前言Util.hppLevel.hppLogMsg.hppFormat.hppSink.hppBuf

java对接Pinata上传文件到IPFS全过程

《java对接Pinata上传文件到IPFS全过程》本文详细介绍了如何使用PinataAPI将文件上传到IPFS网络,首先登录Pinata官网并生成JWT令牌,然后在项目中导入OkHttp依赖并编写代... 目录1.登录2.生成令牌3.导入依赖4.编写代码5.调用接口调试China编程代码总结Pinata调用AP