BaseRequest.h 2.11 KB
//
//  BaseRequest.h
//  IM_ios_client
//
//  Created by 顾俊生 on 16/1/4.
//  Copyright © 2016年 xiniu. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface BaseRequest : NSObject

@property(retain) NSMutableDictionary *fields;

- (instancetype)init;

// API接口名称
@property(retain) NSString *method;
// API接口名称
@property(retain) NSString *identityId;
/**
 *  @brief 业务类别
 */
@property(nonatomic,retain) NSString* apiTenantId;

// locale
@property(nonatomic,retain) NSString *locale;

// 分配给用户的SessionKey,通过登陆授权获取。某个API是否需要传入session参数,需参考此API的API用户授权类型
@property(nonatomic,retain) NSString *session;

// 时间戳
@property(nonatomic,retain) NSString *timestamp;

// 可选,指定响应格式。默认xml,目前支持格式为xml,json
@property(nonatomic,retain) NSString *format;

// API分配给应用的AppKey
@property(nonatomic,retain) NSString *app_key;

// API协议版本,可选值:1.0。
@property(nonatomic,retain) NSString *v;

// API输入参数签名结果
@property(nonatomic,retain) NSString *sign;

// 参数的加密方法选择,可选值是:md5,sha1。
@property(nonatomic,retain) NSString *sign_method;

// app_secret
@property(nonatomic,retain) NSString *secret;

// 生成URL
-(NSString *)createUrl;

// MD5 32位加密
-(NSString *)md5_32:(NSString *)str bool_isUpper:(BOOL)bool_isUpper;

// 排序生成签名
-(NSString *)createSign;

#pragma mark - 共同的设置Request元素的方法
/*
 itemObj:元素值
 itemKey:元素的值在元素所属Domain的字典中对应的Key
 selfFields:元素所属Domain的字典
 selfKey:元素所属Domain的字典在WKBaseDomain中的Key
 */
-(void)setItemObj:(id)itemObj itemKey:(id<NSCopying>)itemKey selfFields:(NSMutableDictionary *)selfFields selfKey:(id<NSCopying>)selfKey;

#pragma mark - 根据Domain的字典在WKBaseDomain中的Key获得Domain的字典
-(NSMutableDictionary *)getDomainDicByKey:(NSString *)domainKey;

#pragma mark - 判读字典中是否存在某个key
-(BOOL)keyExistInDictionary:(NSMutableDictionary *)dic key:(NSString *)key;


@end