Мне нужно сделать подписанные запросы AWS ES, но я застрял в первом препятствии, так как я не могу использовать CurlHttpClient
. Вот мой код (verb
, path
и body
определены в другом месте):aws-sdk-cpp: как использовать CurlHttpClient?
Aws::Client::ClientConfiguration clientConfiguration;
clientConfiguration.scheme = Aws::Http::Scheme::HTTPS;
clientConfiguration.region = Aws::Region::US_EAST_1;
auto client = Aws::MakeShared<Aws::Http::CurlHttpClient>(ALLOCATION_TAG, clientConfiguration);
Aws::Http::URI uri;
uri.SetScheme(Aws::Http::Scheme::HTTPS);
uri.SetAuthority(ELASTIC_SEARCH_DOMAIN);
uri.SetPath(path);
Aws::Http::Standard::StandardHttpRequest req(uri, verb);
req.AddContentBody(body);
auto res = client->MakeRequest(req);
Aws::Http::HttpResponseCode resCode = res->GetResponseCode();
if (resCode == Aws::Http::HttpResponseCode::OK) {
Aws::IOStream &body = res->GetResponseBody();
rejoiceAndBeMerry();
}
else {
gotoPanicStations();
}
При выполнении кода бросает bad_function_call
глубоко внутри SDK вперемешку с большим количеством shared_ptr этого и выделить это. Я предполагаю, что я просто использую SDK неправильно, но я не смог найти примеры, которые используют CurlHttpClient
напрямую, например, мне нужно сделать здесь.
Как я могу использовать CurlHttpClient
?