| using System; | 
| using System.Collections.Generic; | 
| using Top.Api; | 
|   | 
| namespace DingTalk.Api | 
| { | 
|     /// <summary> | 
|     /// 基础TOP请求类,存放一些通用的请求参数。 | 
|     /// </summary> | 
|     public abstract class BaseDingTalkRequest<T> : IDingTalkRequest<T> where T : DingTalkResponse | 
|     { | 
|         /// <summary> | 
|         /// HTTP请求URL参数 | 
|         /// </summary> | 
|         internal TopDictionary otherParams; | 
|         /// <summary> | 
|         /// HTTP请求头参数 | 
|         /// </summary> | 
|         private TopDictionary headerParams; | 
|   | 
|         private String httpMethod = "POST"; | 
|   | 
|         public void AddOtherParameter(string key, string value) | 
|         { | 
|             if (this.otherParams == null) | 
|             { | 
|                 this.otherParams = new TopDictionary(); | 
|             } | 
|             this.otherParams.Add(key, value); | 
|         } | 
|   | 
|         public void AddHeaderParameter(string key, string value) | 
|         { | 
|             GetHeaderParameters().Add(key, value); | 
|         } | 
|   | 
|         public IDictionary<string, string> GetHeaderParameters() | 
|         { | 
|             if (this.headerParams == null) | 
|             { | 
|                 this.headerParams = new TopDictionary(); | 
|             } | 
|             return this.headerParams; | 
|         } | 
|   | 
|         public abstract string GetApiName(); | 
|   | 
|         public abstract string GetApiCallType(); | 
|   | 
|         public abstract void Validate(); | 
|   | 
|         public abstract IDictionary<string, string> GetParameters(); | 
|   | 
|         public void SetHttpMethod(String httpMethod) { | 
|             this.httpMethod = httpMethod; | 
|         } | 
|   | 
|         public string GetHttpMethod() | 
|         { | 
|             return httpMethod; | 
|         } | 
|     } | 
| } |