BBAAPIRequestHelper.h 3 KB
//
//  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