|
|
@@ -161,7 +161,7 @@ func (client *Client) DoAction(request requests.AcsRequest, response responses.A
|
|
|
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
|
|
|
request.GetHeaders()["x-sdk-core-version"] = Version
|
|
|
|
|
|
@@ -184,52 +184,6 @@ func (client *Client) BuildRequestWithSigner(request requests.AcsRequest, signer
|
|
|
return
|
|
|
}
|
|
|
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() == "" {
|
|
|
request.SetScheme(client.config.Scheme)
|
|
|
}
|
|
|
@@ -246,10 +200,20 @@ func (client *Client) DoActionWithSigner(request requests.AcsRequest, response r
|
|
|
} else {
|
|
|
finalSigner = client.signer
|
|
|
}
|
|
|
- httpRequest, err := buildHttpRequest(request, finalSigner, regionId)
|
|
|
+ httpRequest, err = buildHttpRequest(request, finalSigner, regionId)
|
|
|
if 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 {
|
|
|
return
|
|
|
}
|
|
|
@@ -270,7 +234,8 @@ func (client *Client) DoActionWithSigner(request requests.AcsRequest, response r
|
|
|
// if status code >= 500 or timeout, will trigger retry
|
|
|
if client.config.AutoRetry && (err != nil || isServerError(httpResponse)) {
|
|
|
// rewrite signatureNonce and signature
|
|
|
- httpRequest, err = buildHttpRequest(request, finalSigner, regionId)
|
|
|
+ httpRequest, err = client.buildRequestWithSigner(request, signer)
|
|
|
+ // buildHttpRequest(request, finalSigner, regionId)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|