16dbb5987Sopenharmony_ci// Copyright (c) 2023 Huawei Device Co., Ltd. 26dbb5987Sopenharmony_ci// Licensed under the Apache License, Version 2.0 (the "License"); 36dbb5987Sopenharmony_ci// you may not use this file except in compliance with the License. 46dbb5987Sopenharmony_ci// You may obtain a copy of the License at 56dbb5987Sopenharmony_ci// 66dbb5987Sopenharmony_ci// http://www.apache.org/licenses/LICENSE-2.0 76dbb5987Sopenharmony_ci// 86dbb5987Sopenharmony_ci// Unless required by applicable law or agreed to in writing, software 96dbb5987Sopenharmony_ci// distributed under the License is distributed on an "AS IS" BASIS, 106dbb5987Sopenharmony_ci// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 116dbb5987Sopenharmony_ci// See the License for the specific language governing permissions and 126dbb5987Sopenharmony_ci// limitations under the License. 136dbb5987Sopenharmony_ci 146dbb5987Sopenharmony_ci//! Ylong http client utility module. 156dbb5987Sopenharmony_ci//! 166dbb5987Sopenharmony_ci//! A tool module that supports various functions of the http client. 176dbb5987Sopenharmony_ci//! 186dbb5987Sopenharmony_ci//! -[`ClientConfig`] is used to configure a client with options and flags. 196dbb5987Sopenharmony_ci//! -[`HttpConfig`] is used to configure `HTTP` related logic. 206dbb5987Sopenharmony_ci//! -[`HttpVersion`] is used to provide Http Version. 216dbb5987Sopenharmony_ci 226dbb5987Sopenharmony_cipub(crate) mod base64; 236dbb5987Sopenharmony_cipub(crate) mod config; 246dbb5987Sopenharmony_cipub(crate) mod normalizer; 256dbb5987Sopenharmony_cipub(crate) mod pool; 266dbb5987Sopenharmony_cipub(crate) mod proxy; 276dbb5987Sopenharmony_cipub(crate) mod redirect; 286dbb5987Sopenharmony_ci 296dbb5987Sopenharmony_ci#[cfg(feature = "async")] 306dbb5987Sopenharmony_cipub(crate) mod request; 316dbb5987Sopenharmony_ci 326dbb5987Sopenharmony_ci#[cfg(feature = "__tls")] 336dbb5987Sopenharmony_cipub(crate) mod c_openssl; 346dbb5987Sopenharmony_ci 356dbb5987Sopenharmony_ci#[cfg(any(feature = "http1_1", feature = "http2"))] 366dbb5987Sopenharmony_cipub(crate) mod dispatcher; 376dbb5987Sopenharmony_ci 386dbb5987Sopenharmony_ci#[cfg(feature = "http3")] 396dbb5987Sopenharmony_cipub(crate) mod alt_svc; 406dbb5987Sopenharmony_ci#[cfg(any(feature = "http3", feature = "http2"))] 416dbb5987Sopenharmony_cipub(crate) mod data_ref; 426dbb5987Sopenharmony_ci#[cfg(feature = "http2")] 436dbb5987Sopenharmony_cipub(crate) mod h2; 446dbb5987Sopenharmony_ci#[cfg(feature = "http3")] 456dbb5987Sopenharmony_cipub(crate) mod h3; 466dbb5987Sopenharmony_ci#[cfg(all(test, feature = "ylong_base"))] 476dbb5987Sopenharmony_cipub(crate) mod test_utils; 486dbb5987Sopenharmony_ci 496dbb5987Sopenharmony_ci#[cfg(feature = "__tls")] 506dbb5987Sopenharmony_cipub use c_openssl::{ 516dbb5987Sopenharmony_ci Cert, Certificate, PubKeyPins, PubKeyPinsBuilder, TlsConfig, TlsConfigBuilder, TlsFileType, 526dbb5987Sopenharmony_ci TlsVersion, 536dbb5987Sopenharmony_ci}; 546dbb5987Sopenharmony_ci#[cfg(feature = "__tls")] 556dbb5987Sopenharmony_cipub(crate) use config::{AlpnProtocol, AlpnProtocolList}; 566dbb5987Sopenharmony_ci#[cfg(feature = "__tls")] 576dbb5987Sopenharmony_cipub use config::{CertVerifier, ServerCerts}; 586dbb5987Sopenharmony_cipub use config::{Proxy, ProxyBuilder, Redirect, Retry, SpeedLimit, Timeout}; 596dbb5987Sopenharmony_ci#[cfg(all(feature = "async", feature = "ylong_base", feature = "http2"))] 606dbb5987Sopenharmony_cipub(crate) use h2::{split, Reader, Writer}; 61