#json-rpc-client #json-rpc #hyper-client #rpc-client #http #client

jsonrpc-client-http

基于Hyper和futures的jsonrpc-client-core传输实现

7个版本 (4个破坏性更改)

使用旧的Rust 2015

0.5.0 2018年6月25日
0.4.0 2018年6月18日
0.3.0 2018年3月6日
0.2.2 2017年10月5日
0.1.0 2017年7月19日

#427HTTP客户端

Download history 43/week @ 2024-03-17 38/week @ 2024-03-24 70/week @ 2024-03-31 35/week @ 2024-04-07 42/week @ 2024-04-14 48/week @ 2024-04-21 38/week @ 2024-04-28 36/week @ 2024-05-05 39/week @ 2024-05-12 40/week @ 2024-05-19 35/week @ 2024-05-26 43/week @ 2024-06-02 26/week @ 2024-06-09 46/week @ 2024-06-16 45/week @ 2024-06-23 4/week @ 2024-06-30

每月128次下载
用于 3 个crate(2个直接)

MIT/Apache

45KB
659

jsonrpc-client-http

用于由jsonrpc-client-core生成的JSON-RPC 2.0客户端的HTTP传输实现。

使用基于async Tokio的Hyper版本实现符合JSON-RPC 2.0的HTTP传输。

重用连接

每个HttpTransport实例由一个Hyper Client支持,并且通过同一个HttpTransport创建的所有HttpHandle也指向那个相同的Client实例。

默认情况下,Hyper Client具有激活的keep-alive,如果在新请求发送到同一目的地之前达到keep-alive超时,则会保持和重用打开的连接。

TLS / HTTPS

如果启用"tls"功能,则编译TLS支持。

当启用TLS支持时,从HttpTransport::with_tls返回的构建器将生成一个支持明文http和通过TLS加密的https的HttpTransport,后端由hyper_tls::HttpsConnector连接器支持。

示例

请参阅tests/localhost.rs中的集成测试,以获取使用jsonrpc_http_server创建实际HTTP服务器并使用此crate向其发送请求的代码。

以下是一个如何使用此crate与jsonrpc_core一起使用的简单示例

#[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().standalone().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);
}

许可证:MIT/Apache-2.0

依赖关系

~11–21MB
~301K SLoC