fixed issue #74

This commit is contained in:
wb-hx510875
2019-10-25 12:09:02 +08:00
parent 0c750a10f5
commit 0831be3ba4
8 changed files with 39 additions and 22 deletions

View File

@@ -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_;

View File

@@ -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_

View File

@@ -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_;

View File

@@ -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

View File

@@ -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

View File

@@ -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()));

View File

@@ -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()));

View File

@@ -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