diff options
author | jolex007 <jolex007@yandex-team.com> | 2025-01-30 14:03:31 +0300 |
---|---|---|
committer | jolex007 <jolex007@yandex-team.com> | 2025-01-30 14:55:41 +0300 |
commit | f6c6b9334c10ad8d86058c390d13364d28a5b68a (patch) | |
tree | 7bab54548f80626bb023105a7f29f38aa81c134f /library | |
parent | 8a69ffb9c2b26b2b29217ad7a0ff3adfd47a4ad5 (diff) | |
download | ydb-f6c6b9334c10ad8d86058c390d13364d28a5b68a.tar.gz |
Removed dependence from libidn
Выкашиваем зависимость от `libidn` из универсального фетчера (по запросу `ya-bin`)
commit_hash:525ba52d2ea4b45a15e726f7d9c73081fa2812ef
Diffstat (limited to 'library')
-rw-r--r-- | library/cpp/http/simple/http_client.cpp | 34 | ||||
-rw-r--r-- | library/cpp/http/simple/http_client_options.h | 1 | ||||
-rw-r--r-- | library/cpp/http/simple/ya.make | 1 |
3 files changed, 9 insertions, 27 deletions
diff --git a/library/cpp/http/simple/http_client.cpp b/library/cpp/http/simple/http_client.cpp index 1f3c388ff0..00145c804f 100644 --- a/library/cpp/http/simple/http_client.cpp +++ b/library/cpp/http/simple/http_client.cpp @@ -1,7 +1,6 @@ #include "http_client.h" #include <library/cpp/string_utils/url/url.h> -#include <library/cpp/uri/http_url.h> #include <util/stream/output.h> #include <util/string/cast.h> @@ -325,32 +324,15 @@ void TRedirectableHttpClient::ProcessResponse(const TStringBuf relativeUrl, THtt ythrow THttpRequestException(statusCode) << "Exceeds MaxRedirectCount limit, code " << statusCode << " at " << Host << relativeUrl; } - TVector<TString> request_url_parts, request_body_parts; - - size_t splitted_index = 0; - for (auto& iter : StringSplitter(i->Value()).Split('/')) { - if (splitted_index < 3) { - request_url_parts.push_back(TString(iter.Token())); - } else { - request_body_parts.push_back(TString(iter.Token())); - } - ++splitted_index; - } - - TString url = JoinSeq("/", request_url_parts); - ui16 port = 443; - - THttpURL u; - if (THttpURL::ParsedOK == u.Parse(url)) { - const char* p = u.Get(THttpURL::FieldPort); - port = u.GetPort(); - if (p) { - url = u.PrintS(THttpURL::FlagScheme | THttpURL::FlagHost); - } - } + TStringBuf schemeHostPort = GetSchemeHostAndPort(i->Value()); + TStringBuf scheme("http://"); + TStringBuf host("unknown"); + ui16 port = 80; + GetSchemeHostAndPort(schemeHostPort, scheme, host, port); + TStringBuf body = GetPathAndQuery(i->Value(), false); auto opts = Opts; - opts.Host(url); + opts.Host(TString(scheme) + TString(host)); opts.Port(port); opts.MaxRedirectCount(opts.MaxRedirectCount() - 1); @@ -358,7 +340,7 @@ void TRedirectableHttpClient::ProcessResponse(const TStringBuf relativeUrl, THtt if (HttpsVerification) { cl.EnableVerificationForHttps(); } - cl.DoGet(TString("/") + JoinSeq("/", request_body_parts), output); + cl.DoGet(body, output); return; } } diff --git a/library/cpp/http/simple/http_client_options.h b/library/cpp/http/simple/http_client_options.h index 603ca5103a..58849556a9 100644 --- a/library/cpp/http/simple/http_client_options.h +++ b/library/cpp/http/simple/http_client_options.h @@ -1,6 +1,7 @@ #pragma once #include <util/datetime/base.h> +#include <util/string/cast.h> #include <library/cpp/string_utils/url/url.h> class TSimpleHttpClientOptions { diff --git a/library/cpp/http/simple/ya.make b/library/cpp/http/simple/ya.make index 3ef55c852c..40744675e8 100644 --- a/library/cpp/http/simple/ya.make +++ b/library/cpp/http/simple/ya.make @@ -4,7 +4,6 @@ PEERDIR( library/cpp/http/io library/cpp/openssl/io library/cpp/string_utils/url - library/cpp/uri ) SRCS( |