BBAAPIRequestHelper.h
3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
//
// BBAAPIRequestHelper.h
// APIRequest
//
// Created by mengxiangping on 16/11/2.
// Copyright © 2016年 baidu. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "BBABaseAPIRequest.h"
@interface BBAAPIRequestHelper : NSObject
/**
*
* 格式化 request URL 参数, 会对key-value中字串进行Encode
*
*/
+ (NSString *) formatParams: (id) params;
/**
*
* 处理响应数据解析
*
*/
+ (BOOL) parseResponseData: (NSData *) responseData withApiRequest: (BBABaseAPIRequest *) request error: (NSError **) outerError;
/**
* 检查当前网络环境是否启用了HTTP Proxy
*
* @param url 域名(如www.baidu.com)
* @return 启动返回YES,否则NO
*/
+ (BOOL)isHttpProxyEnabledWithURL:(NSURL*) url;
+ (BOOL)validateJSON:(id)json withValidator:(id)jsonValidator;
+ (NSNumber *) timeToMsecond: (NSDate *) date;
/**
* 检查IP是否合法
* @param ipAddress IP地址
@return 合法返回YES,否则NO
*
*/
+ (BOOL)isLegalIpAddress:(NSString*)ipAddress;
/**
* 标识网络库类型的Header字段Key-Value
* @return @"X-BDBoxApp-NetEngine"
* @return @"1/2/3/4"
*/
+ (NSString*)keyForNetEngineTypeHeader;
+ (NSString*)valueForNetEngineTypeHeader;
/**
* 获取httprtt的值
* @param headers header data
* @return httprtt
*/
+ (double)getHttpRttValueFromDic:(NSDictionary*)headers;
/**
* resumeTemporaryPath未设置时生成临时下载路径(在沙盒tmp/apirequest/中)
* @param apiRequest 请求
* @return 临时下载路径
*/
+ (NSString*)defaultDownloadResumeTemporaryPath:(BBABaseAPIRequest*)apiRequest;
/**
* resumedata的缓存路径(在沙盒tmp/apirequest/中)
* @param apiRequest 请求
* @return resumedata路径
*/
+ (NSString*)downloadResumeDataPath:(BBABaseAPIRequest *)apiRequest;
/**
* 清除APIRequest在Temporary中的临时目录
*/
+ (void)clearTemporaryDir;
+ (BOOL)checkURLValid: (NSURL *)url;
/**
*
* 处理断点续传数据解析
*
*/
+ (BOOL) parseResumeData: (NSData *)resumeData withApiRequest: (BBABaseAPIRequest *)request error: (NSError **)error;
/**
*
* 创建普通下载请求时,获取临时文件路径
*
*/
+ (NSString *)getTempFileNameWithDownloadTask:(NSURLSessionDownloadTask *)downloadTask;
/**
*
* 在本地没有resumeData文件时,通过url创建resumeData
*
*/
+ (NSData *)createResumeDataWithApiRequest:(BBABaseAPIRequest *)apiRequest;
/**
*
* 保存临时文件路径
*
*/
+ (void)saveTempFileName:(NSString *)name withUrl:(NSString *)url;
/**
*
* 清除对应url的临时文件信息
*
*/
+ (void)removeTempFileInfoWithUrl:(NSString *)url;
/**
*
* 根据url获取临时文件路径
*
*/
+ (NSString *)getTempFilePathWithUrl:(NSString *)url;
+ (APIRequestMethod)apiRequestMethodFromHTTPMethodString:(NSString *)methodString;
/**
* 生成一个唯一TraceId值,添加在HTTP请求扩展头中( 'X-Bd-Traceid'),用于关联端、BFE等日志,每次调用生成值不同
* TraceId规范参考:http://wiki.baidu.com/pages/viewpage.action?pageId=1071298661
*/
+ (NSString *)generateBdTraceId;
@end