# actix_web::client::ClientConnector - Rust
API documentation for the Rust `ClientConnector` struct in crate `actix_web`.
Keywords: rust, rustlang, rust-lang, ClientConnector

# Struct actix_web::client::ClientConnector [−] [src]

    pub struct ClientConnector { /* fields omitted */ }

`ClientConnector` type is responsible for transport layer of a client connection.

## Methods

###

`impl ClientConnector`

[src]

####

`pub fn with_connector(connector: SslConnector) -> ClientConnector`

[src]

Create `ClientConnector` actor with custom `SslConnector` instance.

By default `ClientConnector` uses very a simple SSL configuration. With `with_connector` method it is possible to use a custom `SslConnector` object.

ⓘThis example is not tested

    extern crate openssl;
    use actix_web::{actix, client::ClientConnector, client::Connect};

    use openssl::ssl::{SslConnector, SslMethod};

    fn main() {
        actix::run(|| {
            // Start `ClientConnector` with custom `SslConnector`
            let ssl_conn = SslConnector::builder(SslMethod::tls()).unwrap().build();
            let conn = ClientConnector::with_connector(ssl_conn).start();

            conn.send(
                Connect::new("https://www.rust-lang.org").unwrap()) // <- connect to host
                    .map_err(|_| ())
                    .and_then(|res| {
                        if let Ok(mut stream) = res {
                            stream.write_all(b"GET / HTTP/1.0\r\n\r\n").unwrap();
                        }
                        Ok(())
                    })
        );
    }

####

`pub fn limit(self, limit: usize) -> Self`

[src]

Set total number of simultaneous connections.

If limit is 0, the connector has no limit. The default limit size is 100.

####

`pub fn limit_per_host(self, limit: usize) -> Self`

[src]

Set total number of simultaneous connections to the same endpoint.

Endpoints are the same if they have equal (host, port, ssl) triplets. If limit is 0, the connector has no limit. The default limit size is 0.

####

`pub fn conn_keep_alive(self, dur: Duration) -> Self`

[src]

Set keep-alive period for opened connection.

Keep-alive period is the period between connection usage. If the delay between repeated usages of the same connection exceeds this period, the connection is closed. Default keep-alive period is 15 seconds.

####

`pub fn conn_lifetime(self, dur: Duration) -> Self`

[src]

Set max lifetime period for connection.

Connection lifetime is max lifetime of any opened connection until it is closed regardless of keep-alive period. Default lifetime period is 75 seconds.

####

`pub fn stats(self, subs: Recipient<ClientConnectorStats>) -> Self`

[src]

Subscribe for connector stats. Only one subscriber is supported.

####

`pub fn resolver(self, addr: Addr<Resolver>) -> Self`

[src]

Use custom resolver actor

## Trait Implementations

###

`impl Actor for ClientConnector`

[src]

#### `type Context = Context<ClientConnector>`

Actor execution context type

####

`fn started(&mut self, ctx: &mut Self::Context)`

[src]

Method is called when actor get polled first time.

####

`fn stopping(&mut self, ctx: &mut Self::Context) -> Running` |

Method is called after an actor is in `Actor::Stopping` state. There could be several reasons for stopping. `Context::stop` get called by the actor itself. All addresses to current actor get dropped and no more evented objects left in the context. Read more

####

`fn stopped(&mut self, ctx: &mut Self::Context)` |

Method is called after an actor is stopped, it can be used to perform any needed cleanup work or spawning more actors. This is final state, after this call actor get dropped. Read more

####

`fn start(self) -> Addr<Self> where Self: Actor<Context = Context<Self>>,` |

Start new asynchronous actor, returns address of newly created actor. Read more

####

`fn start_default() -> Addr<Self> where Self: Actor<Context = Context<Self>> + Default,` |

Start new asynchronous actor, returns address of newly created actor.

####

`fn create<F>(f: F) -> Addr<Self> where F: FnOnce(&mut Context<Self>) -> Self + 'static, Self: Actor<Context = Context<Self>>,` |

Use `create` method, if you need `Context` object during actor initialization. Read more

###

`impl Supervised for ClientConnector`

[src]

####

`fn restarting(&mut self, ctx: &mut Self::Context)` |

Method called when supervisor restarting failed actor

###

`impl SystemService for ClientConnector`

[src]

####

`fn start_service(sys: &Addr<Arbiter>) -> Addr<Self>` |

Construct and srtart system service

####

`fn service_started(&mut self, ctx: &mut Context<Self>)` |

Method is called during service initialization.

####

`fn from_registry() -> Addr<Self>` |

Get actor's address from system registry

###

`impl Default for ClientConnector`

[src]

####

`fn default() -> ClientConnector`

[src]

Returns the "default value" for a type. Read more

###

`impl Handler<Pause> for ClientConnector`

[src]

#### `type Result = ()`

The type of value that this handle will return

####

`fn handle(&mut self, msg: Pause, _: &mut Self::Context)`

[src]

Method is called for every message received by this Actor

###

`impl Handler<Resume> for ClientConnector`

[src]

#### `type Result = ()`

The type of value that this handle will return

####

`fn handle(&mut self, _: Resume, _: &mut Self::Context)`

[src]

Method is called for every message received by this Actor

###

`impl Handler<Connect> for ClientConnector`

[src]

#### `type Result = ActorResponse<ClientConnector, Connection, ClientConnectorError>`

The type of value that this handle will return

####

`fn handle(&mut self, msg: Connect, ctx: &mut Self::Context) -> Self::Result`

[src]

Method is called for every message received by this Actor

## Auto Trait Implementations

###

`impl Send for ClientConnector`

###

`impl !Sync for ClientConnector`

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g. `str,u8` or `String,struct:Vec,test`)