wb-hx510875 7 лет назад
Родитель
Сommit
0831be3ba4

+ 6 - 7
core/include/alibabacloud/core/RoaServiceClient.h

@@ -40,13 +40,12 @@ class ALIBABACLOUD_CORE_EXPORT RoaServiceClient : public CoreClient {
   virtual ~RoaServiceClient();
 
  protected:
-  JsonOutcome makeRequest(const std::string &endpoint,
-    const RoaServiceRequest &msg, HttpRequest::Method method =
-    HttpRequest::Method::Get)const;
-  HttpRequest buildHttpRequest(const std::string & endpoint,
-    const ServiceRequest &msg, HttpRequest::Method method)const override;
-  HttpRequest buildHttpRequest(const std::string & endpoint,
-    const RoaServiceRequest &msg, HttpRequest::Method method)const;
+   JsonOutcome makeRequest(const std::string &endpoint,
+                           const RoaServiceRequest &msg, HttpRequest::Method method = HttpRequest::Method::Get) const;
+   HttpRequest buildHttpRequest(const std::string &endpoint,
+                                const ServiceRequest &msg, HttpRequest::Method method) const override;
+   HttpRequest buildHttpRequest(const std::string &endpoint,
+                                const RoaServiceRequest &msg, HttpRequest::Method method) const;
 
  private:
   std::shared_ptr<CredentialsProvider> credentialsProvider_;

+ 1 - 0
core/include/alibabacloud/core/RoaServiceRequest.h

@@ -30,6 +30,7 @@ class ALIBABACLOUD_CORE_EXPORT RoaServiceRequest : public ServiceRequest {
   using ServiceRequest::parameter;
   using ServiceRequest::setScheme;
   using ServiceRequest::setResourcePath;
+  using ServiceRequest::setMethod;
 };
 }  // namespace AlibabaCloud
 #endif  // CORE_INCLUDE_ALIBABACLOUD_CORE_ROASERVICEREQUEST_H_

+ 6 - 7
core/include/alibabacloud/core/RpcServiceClient.h

@@ -48,13 +48,12 @@ class ALIBABACLOUD_CORE_EXPORT RpcServiceClient : public CoreClient {
   using CoreClient::AttemptRequest;
 
  protected:
-  virtual JsonOutcome makeRequest(const std::string &endpoint,
-    const RpcServiceRequest &msg, HttpRequest::Method method =
-    HttpRequest::Method::Get) const;
-  HttpRequest buildHttpRequest(const std::string & endpoint,
-    const ServiceRequest &msg, HttpRequest::Method method)const override;
-  HttpRequest buildHttpRequest(const std::string & endpoint,
-    const RpcServiceRequest &msg, HttpRequest::Method method)const;
+   virtual JsonOutcome makeRequest(const std::string &endpoint,
+                                   const RpcServiceRequest &msg, HttpRequest::Method method = HttpRequest::Method::Get) const;
+   HttpRequest buildHttpRequest(const std::string &endpoint,
+                                const ServiceRequest &msg, HttpRequest::Method method) const override;
+   HttpRequest buildHttpRequest(const std::string &endpoint,
+                                const RpcServiceRequest &msg, HttpRequest::Method method) const;
 
  private:
   std::shared_ptr<CredentialsProvider> credentialsProvider_;

+ 2 - 1
core/include/alibabacloud/core/RpcServiceRequest.h

@@ -28,9 +28,10 @@ class ALIBABACLOUD_CORE_EXPORT RpcServiceRequest : public ServiceRequest {
   virtual ~RpcServiceRequest();
 
   std::string actionName()const;
+  using ServiceRequest::setMethod;
   using ServiceRequest::setScheme;
 
- protected:
+protected:
   void setActionName(const std::string &name);
 };
 }  // namespace AlibabaCloud

+ 4 - 0
core/include/alibabacloud/core/ServiceRequest.h

@@ -21,6 +21,7 @@
 #include "Url.h"
 #include <map>
 #include <string>
+#include "HttpRequest.h"
 
 namespace AlibabaCloud {
 class ALIBABACLOUD_CORE_EXPORT ServiceRequest {
@@ -39,10 +40,12 @@ public:
   std::string resourcePath() const;
   std::string version() const;
   std::string scheme() const;
+  HttpRequest::Method method() const;
   long connectTimeout() const;
   long readTimeout() const;
   void setConnectTimeout(const long connectTimeout);
   void setReadTimeout(const long readTimeout);
+  void setMethod(const HttpRequest::Method method);
 
 protected:
   ServiceRequest(const std::string &product, const std::string &version);
@@ -80,6 +83,7 @@ private:
   std::string scheme_;
   long connectTimeout_;
   long readTimeout_;
+  HttpRequest::Method method_;
 };
 } // namespace AlibabaCloud
 

+ 4 - 3
core/src/RoaServiceClient.cc

@@ -37,9 +37,10 @@ RoaServiceClient::~RoaServiceClient() {
 }
 
 RoaServiceClient::JsonOutcome RoaServiceClient::makeRequest(
-  const std::string &endpoint,
-  const RoaServiceRequest &msg, HttpRequest::Method method)const {
-  auto outcome = AttemptRequest(endpoint, msg, method);
+    const std::string &endpoint,
+    const RoaServiceRequest &request, HttpRequest::Method method) const
+{
+  auto outcome = AttemptRequest(endpoint, request, request.method());
   if (outcome.isSuccess())
     return JsonOutcome(std::string(outcome.result().body(),
       outcome.result().bodySize()));

+ 4 - 3
core/src/RpcServiceClient.cc

@@ -37,9 +37,10 @@ RpcServiceClient::~RpcServiceClient() {
 }
 
 RpcServiceClient::JsonOutcome RpcServiceClient::makeRequest(
-  const std::string &endpoint,
-  const RpcServiceRequest &msg, HttpRequest::Method method)const {
-  auto outcome = AttemptRequest(endpoint, msg, method);
+    const std::string &endpoint,
+    const RpcServiceRequest &request, HttpRequest::Method method) const
+{
+  auto outcome = AttemptRequest(endpoint, request, request.method());
   if (outcome.isSuccess())
     return JsonOutcome(std::string(outcome.result().body(),
       outcome.result().bodySize()));

+ 12 - 1
core/src/ServiceRequest.cc

@@ -30,7 +30,8 @@ ServiceRequest::ServiceRequest(const std::string &product,
                                                              version_(version),
                                                              scheme_("https"),
                                                              connectTimeout_(kInvalidTimeout),
-                                                             readTimeout_(kInvalidTimeout)
+                                                             readTimeout_(kInvalidTimeout),
+                                                             method_(HttpRequest::Method::Get)
 {
 }
 
@@ -169,6 +170,11 @@ std::string ServiceRequest::version() const
   return version_;
 }
 
+HttpRequest::Method ServiceRequest::method() const
+{
+  return method_;
+}
+
 void ServiceRequest::setVersion(const std::string &version)
 {
   version_ = version;
@@ -224,4 +230,9 @@ void ServiceRequest::setReadTimeout(const long readTimeout)
   readTimeout_ = readTimeout;
 }
 
+void ServiceRequest::setMethod(const HttpRequest::Method method)
+{
+  method_ = method;
+}
+
 } // namespace AlibabaCloud