Skip to main content

BetfairHttpClient

Struct BetfairHttpClient 

Source
pub struct BetfairHttpClient { /* private fields */ }
Expand description

Betfair HTTP client for raw API operations.

Handles session-token authentication, JSON-RPC protocol, form-encoded identity requests, REST navigation, rate limiting, and retry logic.

Implementations§

Source§

impl BetfairHttpClient

Source

pub fn new( credential: BetfairCredential, timeout_secs: Option<u64>, max_retries: Option<u32>, retry_delay_ms: Option<u64>, proxy_url: Option<String>, request_rate_per_second: Option<u32>, order_request_rate_per_second: Option<u32>, ) -> Result<Self, BetfairHttpError>

Creates a new BetfairHttpClient.

§Errors

Returns an error if the HTTP client cannot be created.

Source

pub fn with_urls( self, identity_login: String, betting: String, accounts: String, navigation: String, ) -> Self

Overrides the API base URLs (for testing with mock servers).

The keep-alive URL is derived from identity_login by replacing the path with /keepAlive.

Source

pub fn cancellation_token(&self) -> &CancellationToken

Returns the cancellation token for this client.

Source

pub async fn session_token(&self) -> Option<String>

Returns the current session token, if authenticated.

Source

pub async fn is_connected(&self) -> bool

Returns whether the client has an active session.

Source

pub fn app_key(&self) -> &str

Returns the application key.

Source

pub async fn connect(&self) -> Result<(), BetfairHttpError>

Authenticates with Betfair using interactive (non-cert) login.

Sends credentials to the Identity API and stores the returned session token for subsequent requests.

§Errors

Returns an error if the login request fails or authentication is rejected.

Source

pub async fn reconnect(&self) -> Result<(), BetfairHttpError>

Resets the session and re-authenticates.

§Errors

Returns an error if re-authentication fails.

Source

pub async fn disconnect(&self)

Clears the session token.

Source

pub async fn keep_alive(&self) -> Result<(), BetfairHttpError>

Sends a keep-alive request to renew the session.

§Errors

Returns an error if the keep-alive request fails.

Source

pub async fn send_betting<T, P>( &self, method: &str, params: P, ) -> Result<T, BetfairHttpError>

Sends a JSON-RPC request to the Betting API.

§Errors

Returns an error if the request fails, authentication is missing, or the response contains a JSON-RPC error.

Source

pub async fn send_betting_order<T, P>( &self, method: &str, params: P, ) -> Result<T, BetfairHttpError>

Sends a JSON-RPC request to the Betting API with order rate limiting.

§Errors

Returns an error if the request fails, authentication is missing, or the response contains a JSON-RPC error.

Source

pub async fn send_accounts<T, P>( &self, method: &str, params: P, ) -> Result<T, BetfairHttpError>

Sends a JSON-RPC request to the Accounts API.

§Errors

Returns an error if the request fails, authentication is missing, or the response contains a JSON-RPC error.

Source

pub async fn send_navigation<T>(&self) -> Result<T, BetfairHttpError>

Sends a GET request to the Navigation API.

§Errors

Returns an error if the request fails or the response cannot be parsed.

Trait Implementations§

Source§

impl Debug for BetfairHttpClient

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> Ungil for T
where T: Send,