pub struct HttpKind { /* private fields */ }Expand description
HTTP fetching behavior used by HttpCrawler.
§End-to-end example
use std::sync::Arc;
use millipede_core::{crawler::Crawler, request::Request};
use millipede_http::{HttpContext, HttpKind};
use millipede_storage_memory::MemoryStorageClient;
let crawler = Crawler::builder(HttpKind::builder().build()?)
.request_handler(|ctx: HttpContext| async move {
println!("{} {}", ctx.response.status, ctx.request.url);
Ok(())
})
.storage_client(Arc::new(MemoryStorageClient::new()))
.build()
.await?;
let stats = crawler.run([Request::get("https://example.com").build()?]).await?;
assert_eq!(stats.requests_finished, 1);Implementations§
Source§impl HttpKind
impl HttpKind
Sourcepub fn builder() -> HttpKindBuilder
pub fn builder() -> HttpKindBuilder
Starts configuring an HTTP crawler kind.
Sourcepub fn new() -> Result<Self, HttpClientError>
pub fn new() -> Result<Self, HttpClientError>
Creates an HTTP kind with all defaults.
Trait Implementations§
Source§impl CrawlerKind for HttpKind
impl CrawlerKind for HttpKind
Source§type Context = HttpContext
type Context = HttpContext
The context passed to user handlers and lifecycle hooks. Read more
Source§fn start<'a>(
&'a self,
env: &'a CrawlerEnv,
) -> BoxFuture<'a, Result<(), CrawlError>>
fn start<'a>( &'a self, env: &'a CrawlerEnv, ) -> BoxFuture<'a, Result<(), CrawlError>>
Runs once before the crawler fetches any request.
Source§fn execute<'a>(
&'a self,
env: RequestEnv<'a>,
) -> BoxFuture<'a, Result<Self::Context, CrawlError>>
fn execute<'a>( &'a self, env: RequestEnv<'a>, ) -> BoxFuture<'a, Result<Self::Context, CrawlError>>
Executes one request attempt and constructs its handler context.
Source§fn observe(&self, ctx: &Self::Context) -> AttemptObservation
fn observe(&self, ctx: &Self::Context) -> AttemptObservation
Called once after
execute() succeeds; feeds statistics, HandledRequest, and
RetryStrategy metadata.Source§fn cleanup(
&self,
outcome: RequestOutcome<Self::Context>,
) -> BoxFuture<'_, Result<(), CrawlError>>
fn cleanup( &self, outcome: RequestOutcome<Self::Context>, ) -> BoxFuture<'_, Result<(), CrawlError>>
Runs after every attempt concludes, regardless of its outcome.
Source§fn stop<'a>(
&'a self,
_env: &'a CrawlerEnv,
) -> BoxFuture<'a, Result<(), CrawlError>>
fn stop<'a>( &'a self, _env: &'a CrawlerEnv, ) -> BoxFuture<'a, Result<(), CrawlError>>
Runs once when crawler shutdown begins.
Source§fn before_request<'a>(
&'a self,
prep: &'a mut RequestPrep,
) -> Pin<Box<dyn Future<Output = Result<(), CrawlError>> + Send + 'a>>
fn before_request<'a>( &'a self, prep: &'a mut RequestPrep, ) -> Pin<Box<dyn Future<Output = Result<(), CrawlError>> + Send + 'a>>
Mutates a request before an attempt executes.
Auto Trait Implementations§
impl !Freeze for HttpKind
impl !RefUnwindSafe for HttpKind
impl !UnwindSafe for HttpKind
impl Send for HttpKind
impl Sync for HttpKind
impl Unpin for HttpKind
impl UnsafeUnpin for HttpKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more