jsonrpc-client-http 0.2.0

A transport implementation for jsonrpc-client-core based on Hyper and futures
Documentation
# jsonrpc-client-http

HTTP transport implementation for the JSON-RPC 2.0 clients generated by
[`jsonrpc-client-core`](../jsonrpc_client_core/index.html).

Uses the async Tokio based version of Hyper to implement a JSON-RPC 2.0 compliant HTTP
transport.

## Reusing connections

Each [`HttpTransport`](struct.HttpTransport.html) instance is backed by exactly one Hyper
`Client` and all [`HttpHandle`s](struct.HttpHandle.html) created through the same
`HttpTransport` also point to that same `Client` instance.

By default Hyper `Client`s have keep-alive activated and open connections will be kept and
reused if more requests are sent to the same destination before the keep-alive timeout is
reached.

## TLS / HTTPS

TLS support is compiled if the "tls" feature is enabled (it is enabled by default).

When TLS support is compiled in the instances returned by
[`HttpTransport::new`](struct.HttpTransport.html#method.new) and
[`HttpTransport::shared`](struct.HttpTransport.html#method.shared) support both plaintext http
and https over TLS, backed by the `hyper_tls::HttpsConnector` connector.

## Usage

```rust
#[macro_use] extern crate jsonrpc_client_core;
extern crate jsonrpc_client_http;

use jsonrpc_client_http::HttpTransport;

jsonrpc_client!(pub struct FizzBuzzClient {
    /// Returns the fizz-buzz string for the given number.
    pub fn fizz_buzz(&mut self, number: u64) -> RpcRequest<String>;
});

fn main() {
    let transport = HttpTransport::new().unwrap();
    let transport_handle = transport.handle("https://api.fizzbuzzexample.org/rpc/").unwrap();
    let mut client = FizzBuzzClient::new(transport_handle);
    let result1 = client.fizz_buzz(3).call().unwrap();
    let result2 = client.fizz_buzz(4).call().unwrap();
    let result3 = client.fizz_buzz(5).call().unwrap();

    // Should print "fizz 4 buzz" if the server implemented the service correctly
    println!("{} {} {}", result1, result2, result3);
}
```

License: MIT/Apache-2.0