HDURLSessionManager.h 4.45 KB
Newer Older
Han Ruisong's avatar
Han Ruisong committed
1
2
3
4
5
6
7
8
9
10
11
12
13
//
//  HDURLSessionSessionManager.h
//  HDURLSession
//
//  Created by zwl on 2020/3/23.
//  Copyright © 2020 zwl. All rights reserved.
//

#import <Foundation/Foundation.h>

@protocol HDURLSessionManagerDelegate <NSObject>

@optional
Hanruisong's avatar
Hanruisong committed
14
15
16
17
/** 任务完成/中断/异常,上传,下载通用方法
 @param task 具体任务
 @param error 错误信息
 */
Han Ruisong's avatar
Han Ruisong committed
18
19
-(void)HDURLSessionTask:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error;

Hanruisong's avatar
Hanruisong committed
20
21
22
23
24
25
/** 上传进度回调
 @param task 具体任务
 @param bytesSent 上传字节数
 @param totalBytesSent 总上传字节数
 @param totalBytesExpectedToSend 文件总字节数
 */
Han Ruisong's avatar
Han Ruisong committed
26
27
28
-(void)HDURLSessionTask:(NSURLSessionTask *)task didSendBodyData:(int64_t)bytesSent totalBytesSent:(int64_t)totalBytesSent totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend;

//下载方法回调
Hanruisong's avatar
Hanruisong committed
29
30
31
32
33
/** 恢复下载任务
 @param downloadTask 下载任务
 @param fileOffset 续下位置
 @param expectedTotalBytes 文件总字节数
 */
Han Ruisong's avatar
Han Ruisong committed
34
35
-(void)HDURLSessionDownloadTask:(NSURLSessionDownloadTask *)downloadTask didResumeAtOffset:(int64_t)fileOffset expectedTotalBytes:(int64_t)expectedTotalBytes;

Hanruisong's avatar
Hanruisong committed
36
37
38
39
40
41
/** 下载进度监听
 @param downloadTask 下载任务
 @param bytesWritten 下载字节数
 @param totalBytesWritten 总下载字节数
 @param totalBytesExpectedToWrite 文件总字节数
 */
Han Ruisong's avatar
Han Ruisong committed
42
43
44
45
-(void)HDURLSessionDownloadTask:(NSURLSessionDownloadTask *)downloadTask    didWriteData:(int64_t)bytesWritten
 totalBytesWritten:(int64_t)totalBytesWritten
      totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite;

Hanruisong's avatar
Hanruisong committed
46
47
48
49
/** 下载完成
 @param downloadTask 下载任务
 @param location 本地缓存路径,需copy到自己制定目录,方法完成后,文件会被系统删除
 */
Han Ruisong's avatar
Han Ruisong committed
50
51
52
53
54
55
-(void)HDURLSessionDownloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)location;

@end

@interface HDURLSessionManager : NSObject

Hanruisong's avatar
Hanruisong committed
56
57
58
59
60
61
62
63
64
65
66
/**
 *  @brief 代理回调
 */
@property(nonatomic,weak) id <HDURLSessionManagerDelegate> delegate;

/*!
 * @method
 * @abstract 初始化对象
 * @discussion 初始化对象
 * @result HDURLSessionManager对象
 */
Han Ruisong's avatar
Han Ruisong committed
67
68
69
70
+(HDURLSessionManager *)sharedManager;

///上传任务初始化

Hanruisong's avatar
Hanruisong committed
71
72
73
74
75
76
77
78
79
/*!
 * @method
 * @abstract 初始化上传任务
 * @discussion 初始化上传任务
 * @param urlString 上传地址
 * @param params 上传参数
 * @param filePath 本地文件路径
 * @result NSURLSessionUploadTask对象
 */
Han Ruisong's avatar
Han Ruisong committed
80
81
82
83
-(NSURLSessionUploadTask *)getUploadTaskWithUrl:(NSString *)urlString
                                         Params:(NSDictionary *)params
                                       FilePath:(NSString *)filePath;

Hanruisong's avatar
Hanruisong committed
84
85
86
87
88
89
90
91
/*!
 * @method
 * @abstract 初始化上传任务
 * @discussion 初始化上传任务
 * @param request 上传任务
 * @param filePath 本地文件路径
 * @result NSURLSessionUploadTask对象
 */
Han Ruisong's avatar
Han Ruisong committed
92
93
94
-(NSURLSessionUploadTask *)getUploadTaskWithRequest:(NSURLRequest *)request
                                           FilePath:(NSString *)filePath;

Hanruisong's avatar
Hanruisong committed
95
96
97
98
99
100
/*!
 * @method
 * @abstract 获取全部上传任务
 * @discussion 获取全部上传任务
 * @result 全部上传任务
 */
Han Ruisong's avatar
Han Ruisong committed
101
102
-(NSArray <NSURLSessionUploadTask *> *)getAllUploadTasks;

Hanruisong's avatar
Hanruisong committed
103
104
105
106
107
108
109
110
/*!
 * @method
 * @abstract 初始化下载任务
 * @discussion 初始化下载任务
 * @param urlString 下载地址
 * @param params 下载参数
 * @result NSURLSessionDownloadTask对象
 */
Han Ruisong's avatar
Han Ruisong committed
111
112
113
-(NSURLSessionDownloadTask *)getDownloadTaskWithUrl:(NSString *)urlString
                                             Params:(NSDictionary *)params;

Hanruisong's avatar
Hanruisong committed
114
115
116
117
118
119
120
/*!
 * @method
 * @abstract 初始化下载任务
 * @discussion 初始化下载任务
 * @param request 下载任务
 * @result NSURLSessionDownloadTask对象
 */
Han Ruisong's avatar
Han Ruisong committed
121
122
-(NSURLSessionDownloadTask *)getDownloadTaskWithRequest:(NSURLRequest *)request;

Hanruisong's avatar
Hanruisong committed
123
124
125
126
127
128
129
/*!
 * @method
 * @abstract 通过resumeData初始化下载任务
 * @discussion 通过resumeData初始化下载任务
 * @param resumeData 续传数据
 * @result NSURLSessionDownloadTask对象
 */
Han Ruisong's avatar
Han Ruisong committed
130
131
-(NSURLSessionDownloadTask *)getDownloadTaskWithResumeData:(NSData *)resumeData;

Hanruisong's avatar
Hanruisong committed
132
133
134
135
136
137
/*!
 * @method
 * @abstract 获取全部下载任务
 * @discussion 获取全部下载任务
 * @result 全部下载任务
 */
Han Ruisong's avatar
Han Ruisong committed
138
139
-(NSArray <NSURLSessionDownloadTask *> *)getAllDownloadTasks;

Hanruisong's avatar
Hanruisong committed
140
141
142
143
144
145
146
/*!
 * @method
 * @abstract 开始任务
 * @discussion 开始任务
 * @param task 具体任务
 * @result 操作结果
 */
Han Ruisong's avatar
Han Ruisong committed
147
148
-(BOOL)resumeTask:(NSURLSessionTask *)task;

Hanruisong's avatar
Hanruisong committed
149
150
151
152
153
154
155
/*!
 * @method
 * @abstract 暂停任务
 * @discussion 暂停任务
 * @param task 具体任务
 * @result 操作结果
 */
Han Ruisong's avatar
Han Ruisong committed
156
157
158
-(BOOL)suspendTask:(NSURLSessionTask *)task;

@end