supported request headers operation
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -13,3 +13,4 @@ test/httpserver/package-lock.json
|
||||
test/httpserver/nohup.out
|
||||
.idea
|
||||
build/
|
||||
cmake-build-debug/
|
||||
|
||||
@@ -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)
|
||||
@@ -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_;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,8 +165,8 @@ void cb(const LocationClient *client,
|
||||
const std::shared_ptr<const AsyncCallerContext> &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");
|
||||
|
||||
Reference in New Issue
Block a user