Bläddra i källkod

Reduce duplicate code

Jackson Tian 7 år sedan
förälder
incheckning
7c172ca590
1 ändrade filer med 14 tillägg och 49 borttagningar
  1. 14 49
      sdk/client.go

+ 14 - 49
sdk/client.go

@@ -161,7 +161,7 @@ func (client *Client) DoAction(request requests.AcsRequest, response responses.A
 	return client.DoActionWithSigner(request, response, nil)
 	return client.DoActionWithSigner(request, response, nil)
 }
 }
 
 
-func (client *Client) BuildRequestWithSigner(request requests.AcsRequest, signer auth.Signer) (err error) {
+func (client *Client) buildRequestWithSigner(request requests.AcsRequest, signer auth.Signer) (httpRequest *http.Request, err error) {
 	// add clientVersion
 	// add clientVersion
 	request.GetHeaders()["x-sdk-core-version"] = Version
 	request.GetHeaders()["x-sdk-core-version"] = Version
 
 
@@ -184,52 +184,6 @@ func (client *Client) BuildRequestWithSigner(request requests.AcsRequest, signer
 		return
 		return
 	}
 	}
 	request.SetDomain(endpoint)
 	request.SetDomain(endpoint)
-
-	// init request params
-	err = requests.InitParams(request)
-	if err != nil {
-		return
-	}
-
-	// signature
-	var finalSigner auth.Signer
-	if signer != nil {
-		finalSigner = signer
-	} else {
-		finalSigner = client.signer
-	}
-	httpRequest, err := buildHttpRequest(request, finalSigner, regionId)
-	if client.config.UserAgent != "" {
-		httpRequest.Header.Set("User-Agent", client.config.UserAgent)
-	}
-	return err
-}
-
-func (client *Client) DoActionWithSigner(request requests.AcsRequest, response responses.AcsResponse, signer auth.Signer) (err error) {
-
-	// add clientVersion
-	request.GetHeaders()["x-sdk-core-version"] = Version
-
-	regionId := client.regionId
-	if len(request.GetRegionId()) > 0 {
-		regionId = request.GetRegionId()
-	}
-
-	// resolve endpoint
-	resolveParam := &endpoints.ResolveParam{
-		Domain:               request.GetDomain(),
-		Product:              request.GetProduct(),
-		RegionId:             regionId,
-		LocationProduct:      request.GetLocationServiceCode(),
-		LocationEndpointType: request.GetLocationEndpointType(),
-		CommonApi:            client.ProcessCommonRequest,
-	}
-	endpoint, err := endpoints.Resolve(resolveParam)
-	if err != nil {
-		return
-	}
-	request.SetDomain(endpoint)
-
 	if request.GetScheme() == "" {
 	if request.GetScheme() == "" {
 		request.SetScheme(client.config.Scheme)
 		request.SetScheme(client.config.Scheme)
 	}
 	}
@@ -246,10 +200,20 @@ func (client *Client) DoActionWithSigner(request requests.AcsRequest, response r
 	} else {
 	} else {
 		finalSigner = client.signer
 		finalSigner = client.signer
 	}
 	}
-	httpRequest, err := buildHttpRequest(request, finalSigner, regionId)
+	httpRequest, err = buildHttpRequest(request, finalSigner, regionId)
 	if client.config.UserAgent != "" {
 	if client.config.UserAgent != "" {
 		httpRequest.Header.Set("User-Agent", client.config.UserAgent)
 		httpRequest.Header.Set("User-Agent", client.config.UserAgent)
 	}
 	}
+	return
+}
+
+func (client *Client) BuildRequestWithSigner(request requests.AcsRequest, signer auth.Signer) (err error) {
+	_, err = client.buildRequestWithSigner(request, signer)
+	return
+}
+
+func (client *Client) DoActionWithSigner(request requests.AcsRequest, response responses.AcsResponse, signer auth.Signer) (err error) {
+	httpRequest, err := client.buildRequestWithSigner(request, signer)
 	if err != nil {
 	if err != nil {
 		return
 		return
 	}
 	}
@@ -270,7 +234,8 @@ func (client *Client) DoActionWithSigner(request requests.AcsRequest, response r
 		//  if status code >= 500 or timeout, will trigger retry
 		//  if status code >= 500 or timeout, will trigger retry
 		if client.config.AutoRetry && (err != nil || isServerError(httpResponse)) {
 		if client.config.AutoRetry && (err != nil || isServerError(httpResponse)) {
 			// rewrite signatureNonce and signature
 			// rewrite signatureNonce and signature
-			httpRequest, err = buildHttpRequest(request, finalSigner, regionId)
+			httpRequest, err = client.buildRequestWithSigner(request, signer)
+			// buildHttpRequest(request, finalSigner, regionId)
 			if err != nil {
 			if err != nil {
 				return
 				return
 			}
 			}