package requests import ( "io" "time" ) const ( RPC = "RPC" ROA = "ROA" HTTP = "HTTP" HTTPS = "HTTPS" DefaultHttpPort = "80" GET = "GET" PUT = "PUT" POST = "POST" DELETE = "DELETE" PATCH = "PATCH" HEAD = "HEAD" OPTIONS = "OPTIONS" Json = "application/json" Xml = "application/xml" Raw = "application/octet-stream" Form = "application/x-www-form-urlencoded" Header = "Header" Query = "Query" Body = "Body" Path = "Path" HeaderSeparator = "\n" ) type AcsRequest interface { GetReadTimeout() time.Duration GetConnectTimeout() time.Duration SetReadTimeout(readTimeOut time.Duration) SetConnectTimeout(connectTimeOut time.Duration) SetHTTPSInsecure(isInsecure bool) GetHTTPSInsecure() *bool GetQueryParams() map[string]string GetFormParams() map[string]string GetMethod() string GetScheme() string GetDomain() string GetActionName() string GetAcceptFormat() string GetHeaders() map[string]string BuildUrl() string BuildQueries() string SetScheme(scheme string) SetDomain(host string) SetStringToSign(stringToSign string) GetBodyReader() io.Reader addHeaderParam(key, value string) addQueryParam(key, value string) addFormParam(key, value string) } type baseRequest struct { Scheme string Method string Port string Domain string From string ReadTimeout time.Duration ConnectTimeout time.Duration isInsecure *bool AcceptFormat string actionName string userAgent map[string]string product string version string QueryParams map[string]string Headers map[string]string FormParams map[string]string Content []byte queries string stringToSign string } func (request *baseRequest) GetAcceptFormat() string { return request.AcceptFormat } func (request *baseRequest) GetHeaders() map[string]string { return request.Headers } func (request *baseRequest) GetActionName() string { return request.actionName } func (request *baseRequest) SetScheme(scheme string) { request.Scheme = scheme } func (request *baseRequest) SetDomain(host string) { request.Domain = host } func (request *baseRequest) GetScheme() string { return request.Scheme } func (request *baseRequest) GetDomain() string { return request.Domain } func (request *baseRequest) GetMethod() string { return request.Method } func (request *baseRequest) GetFormParams() map[string]string { return request.FormParams } func (request *baseRequest) GetQueryParams() map[string]string { return request.QueryParams } func (request *baseRequest) SetHTTPSInsecure(isInsecure bool) { request.isInsecure = &isInsecure } func (request *baseRequest) GetHTTPSInsecure() *bool { return request.isInsecure } func (request *baseRequest) GetReadTimeout() time.Duration { return request.ReadTimeout } func (request *baseRequest) GetConnectTimeout() time.Duration { return request.ConnectTimeout } func (request *baseRequest) SetReadTimeout(readTimeOut time.Duration) { request.ReadTimeout = readTimeOut } func (request *baseRequest) SetConnectTimeout(connectTimeOut time.Duration) { request.ConnectTimeout = connectTimeOut } func (request *baseRequest) SetStringToSign(stringToSign string) { request.stringToSign = stringToSign } func (request *baseRequest) addHeaderParam(key, val string) { request.Headers[key] = val } func (request *baseRequest) addQueryParam(key, val string) { request.QueryParams[key] = val } func (request *baseRequest) addFormParam(key, val string) { request.FormParams[key] = val } func defaultBaseRequest() (request *baseRequest) { request = &baseRequest{ Scheme: HTTP, AcceptFormat: "JSON", Method: GET, QueryParams: make(map[string]string), Headers: map[string]string{ "x-sdk-client": "golang/1.0.0", "x-sdk-invoke-type": "normal", "Accept-Encoding": "identity", }, FormParams: make(map[string]string), } return } func InitParam(request AcsRequest) (err error) { return nil }