#pragma once #include #include #include #include #include #include #include namespace NYql { struct IFetchResult: public TThrRefBase { virtual THttpInput& GetStream() = 0; virtual unsigned GetRetCode() = 0; virtual THttpURL GetRedirectURL(const THttpURL& baseUrl) = 0; }; using TFetchResultPtr = TIntrusivePtr; THttpURL ParseURL(const TStringBuf addr); IRetryPolicy::TPtr GetDefaultPolicy(); ERetryErrorClass DefaultClassifyHttpCode(unsigned code); TFetchResultPtr Fetch(const THttpURL& url, const THttpHeaders& additionalHeaders = {}, const TDuration& timeout = TDuration::Max(), size_t redirects = 10, const IRetryPolicy::TPtr& policy = nullptr); } // NYql