supported request headers operation

This commit is contained in:
Axios
2019-12-16 23:19:52 +08:00
committed by GitHub
parent 895d40a767
commit 175996b239
9 changed files with 71 additions and 31 deletions

View File

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

View File

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

View File

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

View File

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