CORE SDK Auto Released By yixiong.jxy,Version:1.2.10
Signed-off-by: yixiong.jxy <yixiong.jxy@alibaba-inc.com>
This commit is contained in:
@@ -25,8 +25,8 @@ namespace
|
||||
{
|
||||
size_t recvBody(char *ptr, size_t size, size_t nmemb, void *userdata)
|
||||
{
|
||||
HttpResponse *response = static_cast<HttpResponse*>(userdata);
|
||||
response->setBody(ptr, nmemb);
|
||||
std::ostringstream &out = *static_cast<std::ostringstream*>(userdata);
|
||||
out << std::string(ptr, nmemb*size);
|
||||
return nmemb * size;
|
||||
}
|
||||
|
||||
@@ -118,17 +118,24 @@ HttpClient::HttpResponseOutcome CurlHttpClient::makeRequest(const HttpRequest &r
|
||||
list = curl_slist_append(list, str.c_str());
|
||||
}
|
||||
curl_easy_setopt(curlHandle_, CURLOPT_HTTPHEADER, list);
|
||||
curl_easy_setopt(curlHandle_, CURLOPT_WRITEDATA, &response);
|
||||
std::ostringstream out;
|
||||
curl_easy_setopt(curlHandle_, CURLOPT_WRITEDATA, &out);
|
||||
curl_easy_setopt(curlHandle_, CURLOPT_WRITEFUNCTION, recvBody);
|
||||
setCUrlProxy(curlHandle_, proxy());
|
||||
|
||||
CURLcode res = curl_easy_perform(curlHandle_);
|
||||
if (res == CURLE_OK) {
|
||||
switch (res)
|
||||
{
|
||||
case CURLE_OK: {
|
||||
long response_code;
|
||||
curl_easy_getinfo(curlHandle_, CURLINFO_RESPONSE_CODE, &response_code);
|
||||
response.setStatusCode(response_code);
|
||||
response.setBody(out.str().c_str(), out.str().length());
|
||||
return HttpResponseOutcome(response);
|
||||
}
|
||||
|
||||
return HttpResponseOutcome(Error("NetworkError", ""));
|
||||
case CURLE_SSL_CONNECT_ERROR:
|
||||
return HttpResponseOutcome(Error("SSLConnectError", "A problem occurred somewhere in the SSL/TLS handshake."));
|
||||
default:
|
||||
return HttpResponseOutcome(Error("NetworkError", "Failed to connect to host or proxy."));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace
|
||||
# include <strings.h>
|
||||
#endif
|
||||
|
||||
const std::string jsondata = "{\"products\":["
|
||||
const std::string INTERNAL_ENDPOINTS_DATA = "{\"products\":["
|
||||
"{\"code\":\"aegis\",\"document_id\":\"28449\",\"location_service_code\":\"vipaegis\",\"regional_endpoints\":[],\"global_endpoint\":\"aegis.cn-hangzhou.aliyuncs.com\",\"regional_endpoint_pattern\":\"\"},"
|
||||
"{\"code\":\"alidns\",\"document_id\":\"29739\",\"location_service_code\":\"alidns\",\"regional_endpoints\":[],\"global_endpoint\":\"alidns.aliyuncs.com\",\"regional_endpoint_pattern\":\"\"},"
|
||||
"{\"code\":\"arms\",\"document_id\":\"42924\",\"location_service_code\":\"\",\"regional_endpoints\":[{\"region\":\"ap-southeast-1\",\"endpoint\":\"arms.ap-southeast-1.aliyuncs.com\"},{\"region\":\"cn-beijing\",\"endpoint\":\"arms.cn-beijing.aliyuncs.com\"},{\"region\":\"cn-hangzhou\",\"endpoint\":\"arms.cn-hangzhou.aliyuncs.com\"},{\"region\":\"cn-hongkong\",\"endpoint\":\"arms.cn-hongkong.aliyuncs.com\"},{\"region\":\"cn-qingdao\",\"endpoint\":\"arms.cn-qingdao.aliyuncs.com\"},{\"region\":\"cn-shanghai\",\"endpoint\":\"arms.cn-shanghai.aliyuncs.com\"},{\"region\":\"cn-shenzhen\",\"endpoint\":\"arms.cn-shenzhen.aliyuncs.com\"}],\"global_endpoint\":\"\",\"regional_endpoint_pattern\":\"arms.[RegionId].aliyuncs.com\"},"
|
||||
@@ -104,7 +104,7 @@ bool EndpointProvider::loadInternalProductsInfo()
|
||||
{
|
||||
Json::Reader reader;
|
||||
Json::Value value;
|
||||
if (!reader.parse(jsondata, value))
|
||||
if (!reader.parse(INTERNAL_ENDPOINTS_DATA, value))
|
||||
return false;
|
||||
|
||||
auto productsNode = value["products"];
|
||||
@@ -157,6 +157,9 @@ std::string EndpointProvider::internalEndpoint(const std::string regionId, const
|
||||
|
||||
EndpointProvider::EndpointOutcome EndpointProvider::getEndpoint()
|
||||
{
|
||||
if (!locationClient_->configuration().endpoint().empty())
|
||||
return EndpointOutcome(locationClient_->configuration().endpoint());
|
||||
|
||||
if (!serviceCode_.empty())
|
||||
{
|
||||
EndpointOutcome outcome = loadRemoteEndpoint();
|
||||
|
||||
Reference in New Issue
Block a user