QUCInterface.h
4.78 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
133
134
135
136
137
138
139
140
141
142
143
144
145
//
// QUCInterface.h
// qucsdkFramework
//
// Created by simaopig on 14-6-25.
// Copyright (c) 2014年 Qihoo.360. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "QUCHTTPRequest.h"
typedef enum{
QUCINTF_PROTOCOL_HTTPS = 0,//以HTTPS协议发送请求
QUCINTF_PROTOCOL_HTTP = 1,//以HTTP协议发送请求
}QUCIntfProtocol;
typedef enum {
QUCINTF_REQUEST_METHOD_GET = 0,//Get方式发送请求
QUCINTF_REQUEST_METHOD_POST = 1,//POST方式发送请求
}QUCIntfRequestMethod;
typedef enum{
QUCINTF_RES_MODE_JSON = 0,//要求数据以JSON格式返回
QUCINTF_RES_MODE_DES = 1,//要求数据以对JSON进行DES加密后返回
}QUCIntfResMod;
typedef enum{
QUCINTF_AUTOLOGIN_QTERRDESC_NO = 0,//自动登录接口,不希望返回QT失效的详细信息
QUCIntf_AUTOLOGIN_QTERRDESC_YES= 1,//自动登录接口,希望返回QT失效的详细信息
}QUCIntfAutoLoginQTErrdesc;
/**
* @brief 请求用户中心服务端的封装类,可以请求任何服务端接口
*/
@interface QUCInterface : NSObject
/**
* @brief 返回QucInterFace对象,如果没有初始化,就返回nil
*
* @return QUCInterface instance
*/
+(instancetype) sharedQUCInterface;
/**
* @brief 根据参数初始化QucInterFace对象,设置业务信息
*
* @param from 用户中心为业务分配的标识信息
* @param mid 业务APPMid信息
* @param signKey 用户中心为业务分配的签名私钥信息
* @param desKey 用户中心为业务分配的DES加密私钥信息
*
* @return QUCInterface instance
*/
+(instancetype) sharedQUCInterfaceWithSrc:(NSString *)from
Mid:(NSString *)mid
SignKey:(NSString *)signKey
DesKey:(NSString *)desKey;
/**
* @brief 请求用户中心接口,返回json项
*
* @param method QUCINTF_REQUEST_METHOD_GET or QUCINTF_REQUEST_METHOD_POST
* @param parameters 参数字典
* @param cookie QT Cookie信息 [NSString stringWithFormat:@"Q=%@; T=%@",Q,T]
* @param progressBlock 请求过程中回调
* @param completeBlock 请求结束后回调
*/
-(void) sendRequestWIthMethod:(QUCIntfRequestMethod)method
parameters:(NSMutableDictionary *)parameters
cookie:(NSString *)cookie
progress:(QUCHTTPRequestProcessHandler)progressBlock
complete:(QUCHTTPRequestCompletionHandler)completeBlock;
/**
* @brief 请求用户中心接口,返回data(例如请求验证码接口,务必使用此方法)
*
* @param method QUCINTF_REQUEST_METHOD_GET or QUCINTF_REQUEST_METHOD_POST
* @param parameters 参数字典
* @param cookie QT Cookie信息 [NSString stringWithFormat:@"Q=%@; T=%@",Q,T]
* @param progressBlock 请求过程中回调
* @param completeBlock 请求结束后回调
*/
-(void) sendBytesRequestWIthMethod:(QUCIntfRequestMethod)method
parameters:(NSMutableDictionary *)parameters
cookie:(NSString *)cookie
progress:(QUCHTTPRequestProcessHandler)progressBlock
complete:(QUCHTTPRequestCompletionHandler)completeBlock;
/**
* @brief 根据业务传递参数及协议,生成用户中心接口的URL(便于业务方自行发送HTTP请求)
*
* @param parameters 请求URL的参数字典,系统会根据initWithConf得到的信息增加from等参数
* @param protocol QUCINTF_PROTOCOL_HTTP or QUCINTF_PROTOCOL_HTTPS
*
* @return URL
*/
-(NSString *) getUrl:(NSMutableDictionary *)parameters
Protocol:(QUCIntfProtocol)protocol;
/**
* @brief 获取Json字典,可根据desFlag来决定是否先进行des解密
* 需要进行try catch,防止返回非json格式
* @param response 用户中心接口返回的全部内容
* @param desFlag 标志是否需要先进行des解密
*
* @return jsonDict
*/
-(NSDictionary *) getJsonDict:(id)response NeedDes:(BOOL)desFlag;
/**
* @brief 获取含Q key及T key的字典
*
* @param responseCookie 接口请求complete后返回的responseCookie头
*
* @return [NSDictionary dictionaryWithObjectsAndKeys:cookieQ,@"Q",cookieT,@"T",nil]
*/
+(NSDictionary *) getQTDict:(NSDictionary *)responseCookie;
/**
* @brief 获取QT组合后的字符串
*
* @param responseCookie 接口请求complete后返回的responseCookie头
*
* @return [NSString stringWithFormat:@"Q=%@; T=%@",Q,T] or nil
*/
+(NSString *) getQTStr:(NSDictionary *)responseCookie;
/**
* @brief 获取当前APP Version信息
*
* @return NSString
*/
+(NSString *) getVersion;
/**
* @brief 获取默认的vtGuid,为当前时间戳
*
* @return NSString
*/
+(NSString *) getDefVtGuid;
/**
* 删除之前网络请求过程中NSHTTPCookieStorage存储的QT Cookie
*/
+(void)deleteHistoryQTCookie;
@end