wreq_util/emulate/
profile.rs1pub mod chrome;
4pub mod firefox;
5pub mod okhttp;
6pub mod opera;
7pub mod safari;
8
9use typed_builder::TypedBuilder;
10#[cfg(feature = "emulation-compression")]
11use wreq::header::ACCEPT_ENCODING;
12use wreq::{
13 Group,
14 header::{ACCEPT, ACCEPT_LANGUAGE, HeaderMap, HeaderName, HeaderValue, USER_AGENT},
15 http2::{
16 Http2Options, Priorities, Priority, PseudoId, PseudoOrder, SettingId, SettingsOrder,
17 StreamDependency, StreamId,
18 },
19 tls::{
20 AlpnProtocol, AlpsProtocol, ExtensionType, KeyShare, TlsOptions, TlsVersion,
21 compress::CertificateCompressor,
22 },
23};
24
25use super::{
26 Emulation, Platform,
27 compress::{BrotliCompressor, ZlibCompressor, ZstdCompressor},
28};
29
30fn build_standard_emulation(
31 group: &'static str,
32 tls_options: TlsOptions,
33 http2_options: Option<Http2Options>,
34 default_headers: Option<HeaderMap>,
35) -> wreq::Emulation {
36 let mut builder = wreq::Emulation::builder().tls_options(tls_options);
37
38 if let Some(http2_options) = http2_options {
39 builder = builder.http2_options(http2_options);
40 }
41
42 if let Some(headers) = default_headers {
43 builder = builder.headers(headers);
44 }
45
46 builder.build(Group::new(group))
47}