aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/http/simple/http_client.cpp
diff options
context:
space:
mode:
authorjolex007 <jolex007@yandex-team.com>2025-01-30 14:03:31 +0300
committerjolex007 <jolex007@yandex-team.com>2025-01-30 14:55:41 +0300
commitf6c6b9334c10ad8d86058c390d13364d28a5b68a (patch)
tree7bab54548f80626bb023105a7f29f38aa81c134f /library/cpp/http/simple/http_client.cpp
parent8a69ffb9c2b26b2b29217ad7a0ff3adfd47a4ad5 (diff)
downloadydb-f6c6b9334c10ad8d86058c390d13364d28a5b68a.tar.gz
Removed dependence from libidn
Выкашиваем зависимость от `libidn` из универсального фетчера (по запросу `ya-bin`) commit_hash:525ba52d2ea4b45a15e726f7d9c73081fa2812ef
Diffstat (limited to 'library/cpp/http/simple/http_client.cpp')
-rw-r--r--library/cpp/http/simple/http_client.cpp34
1 files changed, 8 insertions, 26 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;
}
}