pub struct Client { /* private fields */ }
Implementations§
Source§impl Client
impl Client
pub fn new() -> Client
Sourcepub fn get<T: DeserializeOwned>(
&self,
url: &str,
times_to_try: u32,
) -> HttpResult<T>
pub fn get<T: DeserializeOwned>( &self, url: &str, times_to_try: u32, ) -> HttpResult<T>
This is the main function to use. Just define a struct with #[derive(Serialize, Deserialize)] that matches the JSON that will be returned from the request.
url
- full url with args if you have them.times_to_try
- times to try before giving up. It starts with 1 second delay and doubles the delay each time.
Sourcepub fn get_as_text(&self, url: &str) -> String
pub fn get_as_text(&self, url: &str) -> String
This is if you want to see the shape of the return data as text so you know how to define things.
Sourcepub fn post<T>(&self, url: &str, data: T)
pub fn post<T>(&self, url: &str, data: T)
Used to send a post request
url
- base url that might include an api keydata
- most likely going to be json. Use serde_json::json macro if passing as a string.
§Examples
use ddf_blocking_http_client::Client;
use serde_json::json;
use dotenv::dotenv;
use std::env;
// dotenv is being used for lack of an example not requiring private keys and public wallet addresses.
// dotenv is not required for this crate to work.
dotenv::dotenv().ok();
let api_key = env::var("INFURA_API_KEY").unwrap();
let client = Client::new();
let url = [
"https://mainnet.infura.io/v3/",
&api_key
].concat();
let res = client.post(&
url,
json!(
{"jsonrpc":"2.0",
"method":"eth_estimateGas",
"params": [
{"from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155",
"to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567",
"gas": "0x76c0",
"gasPrice": "0x9184e72a000",
"value": "0x9184e72a",
"data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"}],"id":1}
)
);
dbg!(&res);
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Client
impl !RefUnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl !UnwindSafe for Client
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