YTKNetwork使用心得----使用篇2

开篇语:

前两篇文章介绍了YTKNetwork的简单封装,只给出了HXGetRequest类的实现,相信大家也照葫芦画瓢写了HXPostRequest类。嗯,我这里只是想介绍,如何让你的HXPostRequest支持文件上传

实现:

如果你是按照官网教程的使用方法,你需要写一个UploadImageApi类,然后重写 constructingBodyBlock 方法。它的作用是在POST方法中提供一个设置HTTP body的地方。而它传递的数据格式是AFMultipartFormData,这个我们并不陌生,它就是AFNetworking类里定义的。是不是一下子变的非常亲切?

让我们看看HXPostRequest的简单实现:

#import "HXRequest.h"

@interface HXPostRequest : HXRequest

/**
 POST 请求
 
 @param url 网址
 @param argument 参数
 @return HXRequest
 */
- (id)initWithRequestUrl:(NSString *)url argument:(id)argument;

/**
 POST 请求

 @param url 网址
 @param argument 参数
 @param block 支持附件
 @return HXRequest
 */
- (id)initWithRequestUrl:(NSString *)url argument:(id)argument constructingBodyBlock:(nullable AFConstructingBlock)block;

@end
#import "HXPostRequest.h"

@implementation HXPostRequest

- (id)initWithRequestUrl:(NSString *)url argument:(id)argument {
    
    return [self initWithRequestUrl:url argument:argument constructingBodyBlock:nil];
}

- (id)initWithRequestUrl:(NSString *)url argument:(id)argument constructingBodyBlock:(nullable AFConstructingBlock)block{
    
    self = [super init];
    if (self) {
        self.requestUrl = url;
        self.requestArgument = argument;
        self.constructingBodyBlock = block;//直接赋值过去即可
    }
    return self;
}

- (YTKRequestMethod)requestMethod {
    return YTKRequestMethodPOST;
}

@end

使用的时候也非常简单:

HXPostRequest *uploadRequest = [[HXPostRequest alloc] initWithRequestUrl:@"api/uploadfile" argument:nil constructingBodyBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
    //把所有要上传的文件都加进去
    for (NSURL * tempFileUrl in self.fileUrls) {
        [formData appendPartWithFileURL:tempFileUrl name:@"files" error:nil];
    }
}];

[uploadRequest startWithCompletionBlockWithSuccess:^(__kindof HXRequest *request, NSDictionary *result, BOOL success) {
    if (success) {
        //上传成功
    }else
    {
        //失败
    }
} failure:^(__kindof HXRequest *request, NSString *errorInfo) {
    //报错
    NSLog(@"%@",errorInfo);
}];

 

相关文章:YTKNetwork使用心得----基本介绍

                    YTKNetwork使用心得----使用篇1

 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TheLittleBoy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值