Sfoglia il codice sorgente

add global scheme for client

jxyowen 7 anni fa
parent
commit
b94dc22223
4 ha cambiato i file con 15 aggiunte e 1 eliminazioni
  1. 7 0
      sdk/client.go
  2. 1 0
      sdk/config.go
  3. 1 0
      sdk/endpoints/location_resolver.go
  4. 6 1
      sdk/requests/acs_reqeust.go

+ 7 - 0
sdk/client.go

@@ -220,6 +220,9 @@ func (client *Client) DoActionWithSigner(request requests.AcsRequest, response r
 	}
 	request.SetDomain(endpoint)
 
+	if request.GetScheme() == "" {
+		request.SetScheme(client.config.Scheme)
+	}
 	// init request params
 	err = requests.InitParams(request)
 	if err != nil {
@@ -330,6 +333,10 @@ func (client *Client) AddAsyncTask(task func()) (err error) {
 	return
 }
 
+func (client *Client)GetConfig() *Config {
+	return client.config
+}
+
 func NewClient() (client *Client, err error) {
 	client = &Client{}
 	err = client.Init()

+ 1 - 0
sdk/config.go

@@ -30,6 +30,7 @@ type Config struct {
 	EnableAsync       bool            `default:"false"`
 	MaxTaskQueueSize  int             `default:"1000"`
 	GoRoutinePoolSize int             `default:"5"`
+	Scheme string             `default:"HTTP"`
 }
 
 func NewConfig() (config *Config) {

+ 1 - 0
sdk/endpoints/location_resolver.go

@@ -58,6 +58,7 @@ func (resolver *LocationResolver) TryResolve(param *ResolveParam) (endpoint stri
 	getEndpointRequest.ApiName = "DescribeEndpoints"
 	getEndpointRequest.Domain = "location.aliyuncs.com"
 	getEndpointRequest.Method = "GET"
+	getEndpointRequest.Scheme = requests.HTTPS
 
 	getEndpointRequest.QueryParams["Id"] = param.RegionId
 	getEndpointRequest.QueryParams["ServiceCode"] = param.LocationProduct

+ 6 - 1
sdk/requests/acs_reqeust.go

@@ -78,6 +78,7 @@ type AcsRequest interface {
 
 	SetDomain(domain string)
 	SetContent(content []byte)
+	SetScheme(scheme string)
 	BuildUrl() string
 	BuildQueries() string
 
@@ -171,6 +172,10 @@ func (request *baseRequest) GetScheme() string {
 	return request.Scheme
 }
 
+func (request *baseRequest) SetScheme(scheme string) {
+	request.Scheme = scheme
+}
+
 func (request *baseRequest) GetMethod() string {
 	return request.Method
 }
@@ -214,7 +219,7 @@ func (request *baseRequest) GetStringToSign() string {
 
 func defaultBaseRequest() (request *baseRequest) {
 	request = &baseRequest{
-		Scheme:       HTTP,
+		Scheme:       "",
 		AcceptFormat: "JSON",
 		Method:       GET,
 		QueryParams:  make(map[string]string),