diff --git a/.gitignore b/.gitignore index 52193abde..9c53eb7fc 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ test/httpserver/package-lock.json test/httpserver/nohup.out .idea build/ +cmake-build-debug/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7121d321e..c89e62ae5 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,7 +65,6 @@ add_subdirectory(teslamaxcompute) add_subdirectory(push) add_subdirectory(csb) add_subdirectory(domain) -add_subdirectory(green) add_subdirectory(hsm) add_subdirectory(dcdn) add_subdirectory(pvtz) @@ -98,30 +97,30 @@ add_subdirectory(cr) add_subdirectory(openanalytics) add_subdirectory(snsuapi) add_subdirectory(ubsms) -add_subdirectory(yundun) -add_subdirectory(arms4finance) -add_subdirectory(imagesearch) -add_subdirectory(cas) -add_subdirectory(cloudwf) -add_subdirectory(alidns) +add_subdirectory(yundun) +add_subdirectory(arms4finance) +add_subdirectory(imagesearch) +add_subdirectory(cas) +add_subdirectory(cloudwf) +add_subdirectory(alidns) add_subdirectory(httpdns) - -add_subdirectory(crm) -add_subdirectory(kms) -add_subdirectory(sas-api) -add_subdirectory(jarvis-public) -add_subdirectory(mts) -add_subdirectory(dysmsapi) -add_subdirectory(ons) -add_subdirectory(ivision) -add_subdirectory(imm) + +add_subdirectory(crm) +add_subdirectory(kms) +add_subdirectory(sas-api) +add_subdirectory(jarvis-public) +add_subdirectory(mts) +add_subdirectory(dysmsapi) +add_subdirectory(ons) +add_subdirectory(ivision) +add_subdirectory(imm) add_subdirectory(bssopenapi) - + add_subdirectory(sas) - -add_subdirectory(dbs) -add_subdirectory(r-kvstore) -add_subdirectory(dds) -add_subdirectory(yundun-ds) -add_subdirectory(trademark) + +add_subdirectory(dbs) +add_subdirectory(r-kvstore) +add_subdirectory(dds) +add_subdirectory(yundun-ds) +add_subdirectory(trademark) add_subdirectory(sddp) \ No newline at end of file diff --git a/core/include/alibabacloud/core/ServiceRequest.h b/core/include/alibabacloud/core/ServiceRequest.h index 58c9bf2b4..b719a6fb7 100644 --- a/core/include/alibabacloud/core/ServiceRequest.h +++ b/core/include/alibabacloud/core/ServiceRequest.h @@ -46,6 +46,10 @@ public: void setConnectTimeout(const long connectTimeout); void setReadTimeout(const long readTimeout); void setMethod(const HttpRequest::Method method); + void setHeader(const ParameterNameType &name, const ParameterValueType &value); + ParameterValueType getHeader(const ParameterNameType &name); + void removeHeader(const ParameterNameType &name); + ParameterCollection headers() const; protected: ServiceRequest(const std::string &product, const std::string &version); @@ -77,6 +81,7 @@ private: char *content_; size_t contentSize_; ParameterCollection params_; + ParameterCollection headers_; std::string product_; std::string resourcePath_; std::string version_; diff --git a/core/src/RoaServiceClient.cc b/core/src/RoaServiceClient.cc index f0e2b674a..eb0e48d0a 100644 --- a/core/src/RoaServiceClient.cc +++ b/core/src/RoaServiceClient.cc @@ -102,6 +102,12 @@ HttpRequest RoaServiceClient::buildHttpRequest(const std::string & endpoint, request.setReadTimeout(configuration().readTimeout()); } + for(const auto &h : msg.headers()){ + if(!h.second.empty()){ + request.setHeader(h.first, h.second); + } + } + if (msg.parameter("Accept").empty()) { request.setHeader("Accept", "application/json"); } else { diff --git a/core/src/RpcServiceClient.cc b/core/src/RpcServiceClient.cc index 465d1562b..c3259b4f5 100644 --- a/core/src/RpcServiceClient.cc +++ b/core/src/RpcServiceClient.cc @@ -119,6 +119,14 @@ HttpRequest RpcServiceClient::buildHttpRequest(const std::string & endpoint, request.setConnectTimeout(configuration().connectTimeout()); } + for (const auto &h : msg.headers()) + { + if (!h.second.empty()) + { + request.setHeader(h.first, h.second); + } + } + if (msg.readTimeout() != kInvalidTimeout) { request.setReadTimeout(msg.readTimeout()); } else { diff --git a/core/src/ServiceRequest.cc b/core/src/ServiceRequest.cc index 7692f559a..14db49ac7 100644 --- a/core/src/ServiceRequest.cc +++ b/core/src/ServiceRequest.cc @@ -235,4 +235,25 @@ void ServiceRequest::setMethod(const HttpRequest::Method method) method_ = method; } +void ServiceRequest::setHeader(const ServiceRequest::ParameterNameType &name, + const ServiceRequest::ParameterValueType &value) +{ + headers_[name] = value; +} + +ServiceRequest::ParameterValueType ServiceRequest::getHeader(const ServiceRequest::ParameterNameType &name) +{ + return headers_[name]; +} + +void ServiceRequest::removeHeader(const ServiceRequest::ParameterNameType &name) +{ + headers_.erase(name); +} + +ServiceRequest::ParameterCollection ServiceRequest::headers() const +{ + return headers_; +} + } // namespace AlibabaCloud diff --git a/test/core/endpointprovider_ut.cc b/test/core/endpointprovider_ut.cc index 5ac670159..d904b06c4 100644 --- a/test/core/endpointprovider_ut.cc +++ b/test/core/endpointprovider_ut.cc @@ -116,10 +116,10 @@ TEST(EndpointProvider, serial_02) { ClientConfiguration configuration("cn-hangzhou"); EndpointProvider ep(credentials, configuration, "cn-hangzhou", "arms", "arms"); EndpointProvider::EndpointOutcome out = ep.getEndpoint(); - EXPECT_TRUE(out.result() == "arms.cn-hangzhou.aliyuncs.com"); + EXPECT_EQ("arms.cn-hangzhou.aliyuncs.com", out.result()); EndpointProvider p1(credentials, configuration, "cn-shanghai", "fake-ecs", "fake-ecs"); EndpointProvider::EndpointOutcome out1 = p1.getEndpoint(); - EXPECT_TRUE(out1.error().errorCode() == "InvalidProduct"); - EXPECT_TRUE(out1.error().errorMessage() == "Prodcut[fake-ecs] does not exist."); + EXPECT_EQ("InvalidProduct", out1.error().errorCode()); + EXPECT_EQ("Prodcut[fake-ecs] does not exist.", out1.error().errorMessage()); } diff --git a/test/core/executor_ut.cc b/test/core/executor_ut.cc index 085786efa..d5c860d05 100644 --- a/test/core/executor_ut.cc +++ b/test/core/executor_ut.cc @@ -54,7 +54,7 @@ static void f2() { // there is no time for task executing // maybe some tasks executed as the async reason - EXPECT_TRUE(nbr != 0x07); + // EXPECT_EQ(nbr, 0x07); rf0 = new Runnable(func0); rf1 = new Runnable(func1); @@ -72,7 +72,7 @@ static void f2() { e->execute(rf1); e->execute(rf2); usleep(20000); - EXPECT_TRUE(nbr == 0x07); + EXPECT_EQ(nbr, 0x07); e->shutdown(); } } diff --git a/test/function_test/core/locationclient_ft.cc b/test/function_test/core/locationclient_ft.cc index 3a7184400..0b950292f 100644 --- a/test/function_test/core/locationclient_ft.cc +++ b/test/function_test/core/locationclient_ft.cc @@ -165,8 +165,8 @@ void cb(const LocationClient *client, const std::shared_ptr &contex) { - EXPECT_TRUE(out.error().errorCode() == ""); - EXPECT_TRUE(out.result().endpoints().size() == 1); + EXPECT_EQ(out.error().errorCode(), ""); + EXPECT_EQ(out.result().endpoints().size(), 1); Model::DescribeEndpointsResult::Endpoint ep = out.result().endpoints()[0]; EXPECT_TRUE(ep.endpoint == "ecs-cn-hangzhou.aliyuncs.com"); EXPECT_TRUE(ep.id == "cn-hangzhou");