slinger

Enum Proxy

Source
pub enum Proxy {
    HTTP(HttpProxy),
    Socket(Socket5Proxy),
}
Expand description

Configuration of a proxy that a Client should pass requests to.

A Proxy has a couple pieces to it:

  • a URL of how to talk to the proxy
  • rules on what Client requests should be directed to the proxy

For instance, let’s look at Proxy::http:

let proxy = slinger::Proxy::parse("https://secure.example")?;

This proxy will intercept all HTTP requests, and make use of the proxy at https://secure.example. A request to http://hyper.rs will talk to your proxy. A request to https://hyper.rs will not.

Multiple Proxy rules can be configured for a Client. The Client will check each Proxy in the order it was added. This could mean that a Proxy added first with eager intercept rules, such as Proxy::all, would prevent a Proxy later in the list from ever working, so take care.

By enabling the "socks" feature it is possible to use a socks proxy:

let proxy = slinger::Proxy::parse("socks5://192.168.1.1:9000")?;

Variants§

§

HTTP(HttpProxy)

HTTP or HTTPS

§

Socket(Socket5Proxy)

SOCKS5

Implementations§

Source§

impl Proxy

Source

pub fn uri(&self) -> Uri

Convert Proxy to a URL

Source

pub fn parse<U>(url: U) -> Result<Self>
where Uri: TryFrom<U>, <Uri as TryFrom<U>>::Error: Into<Error>,

Convert a URL into a proxy

Supported schemes: HTTP, HTTPS, (SOCKS5, SOCKS5H).

Examples found in repository?
examples/proxy.rs (line 5)
4
5
6
7
8
9
10
fn main() -> Result<(), Box<dyn std::error::Error>> {
  let proxy = slinger::Proxy::parse("http://127.0.0.1:8080").unwrap();
  let client = ClientBuilder::new().proxy(proxy).build().unwrap();
  let resp = client.get("https://httpbin.org/get").send()?;
  println!("{:?}", resp.text());
  Ok(())
}

Trait Implementations§

Source§

impl Clone for Proxy

Source§

fn clone(&self) -> Proxy

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Proxy

Source§

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

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Proxy

Source§

fn eq(&self, other: &Proxy) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for Proxy

Auto Trait Implementations§

§

impl !Freeze for Proxy

§

impl RefUnwindSafe for Proxy

§

impl Send for Proxy

§

impl Sync for Proxy

§

impl Unpin for Proxy

§

impl UnwindSafe for Proxy

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.