pub trait ChallengeHttpClient: Send + Sync {
// Required methods
fn send_form<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
method: &'life1 Method,
url: &'life2 Url,
headers: &'life3 HeaderMap,
form_fields: &'life4 HashMap<String, String>,
allow_redirects: bool,
) -> Pin<Box<dyn Future<Output = Result<ChallengeHttpResponse, ChallengeHttpClientError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait;
fn send_with_body<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
method: &'life1 Method,
url: &'life2 Url,
headers: &'life3 HeaderMap,
body: Option<&'life4 [u8]>,
allow_redirects: bool,
) -> Pin<Box<dyn Future<Output = Result<ChallengeHttpResponse, ChallengeHttpClientError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait;
}Expand description
Contract that abstracts the underlying HTTP transport used during challenge replay.
Implementations should ensure that cookies and other stateful data are preserved between calls so the session behaves consistently.