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日 |
#427 在 HTTP客户端
每月128次下载
用于 3 个crate(2个直接)
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